2011-05-31 67 views
3

我有一個名爲NotAuthorised的共享視圖在視圖/共享文件夾中。我想在用戶無權查看頁面時將用戶重定向到此視圖。MVC-3 ASP.NET共享視圖重定向剃刀

最初,該視圖位於名爲Account的文件夾中。但我將其移入共享文件夾,因爲我不再使用該帳戶。我已刪除帳戶文件夾。

我用下面的代碼來重定向:

public ActionResult NotAuthorised() 
{ 
    return RedirectToAction("NotAuthorised", "Account"); 
} 

現在,我刪除了賬戶文件夾中,我試圖用

public ActionResult NotAuthorised() 
{ 
    return RedirectToAction("NotAuthorised", "Shared"); 
} 

我通過給共享文件夾名稱完全錯誤在最後一行。

誰能告訴我,我做錯了什麼?

謝謝

回答

9

你不能重定向到一個View,只有一個ControllerAction。你必須爲你的重定向指定一個控制器動作,在那裏你可以渲染你的共享視圖。

public class AuthorizeController : Controller 
{ 
    public ActionResult NotAuthorised() 
    { 
     return View("NotAuthorised"); 
    } 
} 

後來從任何其他行動方法中重定向到這個新的動作:

return RedirectToAction("NotAuthorised", "Authorize"); 

但是你可能並不需要這種額外Controller。你可以簡單地渲染共享View

public ActionResult NotAuthorised() 
{ 
    return View("NotAuthorised"); 
} 
+0

非常感謝你。期待您的回答。 – 2011-05-31 09:54:13

+3

我已經使用了這兩個。返回查看(「〜/ Views/Shared/NotAuthorised.cshtml」);並返回View(「NotAuthorised」),它們都起作用。 – 2011-05-31 09:58:36