MVC-3 ASP.NET共享视图 - 重定向 - Razor

Har*_*ala 3 c# shared view asp.net-mvc-3

我在"Views/Shared"文件夹中有一个名为NotAuthorised的共享视图.我想在用户无权查看页面时将用户重定向到此视图.

最初,此视图位于名为Account的文件夹中.但我把它移到了共享文件夹中,因为我不再使用帐户了.我删除了帐户文件夹.

我使用以下代码重定向:

public ActionResult NotAuthorised()
{  
   return RedirectToAction("NotAuthorised", "Account");
}
Run Code Online (Sandbox Code Playgroud)

现在我删除了帐户文件夹,我正在尝试使用

public ActionResult NotAuthorised()
{  
   return RedirectToAction("NotAuthorised", "Shared");
}
Run Code Online (Sandbox Code Playgroud)

通过在最后一行分享文件夹名称,我完全错了.

谁能告诉我,我做错了什么?

谢谢

Dan*_*elB 9

您无法重定向到a View,只能转换Action为a Controller.您必须为重定向指定控制器操作,然后您可以在其中呈现共享视图.

public class AuthorizeController : Controller
{
    public ActionResult NotAuthorised()
    {  
       return View("NotAuthorised");
    }
}
Run Code Online (Sandbox Code Playgroud)

然后从任何其他操作方法中重定向到此新操作:

return RedirectToAction("NotAuthorised", "Authorize");
Run Code Online (Sandbox Code Playgroud)

但你可能不需要这个额外的Controller.您可以简单地渲染共享View

public ActionResult NotAuthorised()
{  
   return View("NotAuthorised");
}
Run Code Online (Sandbox Code Playgroud)

  • 我用过这两个.return View("〜/ Views/Shared/NotAuthorised.cshtml"); 并返回View("NotAuthorised"),它们都有效. (3认同)