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

Posted

技术标签:

【中文标题】MVC-3 ASP.NET 共享视图-重定向-Razor【英文标题】:MVC-3 ASP.NET Shared Views-Redirect-Razor 【发布时间】:2011-05-31 09:28:56 【问题描述】:

我在“视图/共享”文件夹中有一个名为 NotAuthorised 的共享视图。当用户无权查看该页面时,我想将用户重定向到此视图。

最初,此视图位于名为 Account 的文件夹中。但我将其移至共享文件夹,因为我不再使用该帐户。我已删除 Account 文件夹。

我使用以下代码进行重定向:

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

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

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

在最后一行给出共享的文件夹名称是完全错误的。

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

谢谢

【问题讨论】:

【参考方案1】:

您不能重定向到 View,只能重定向到 ActionController。你必须为你的重定向指定一个控制器动作,你可以在那里呈现你的共享视图。

public class AuthorizeController : Controller

    public ActionResult NotAuthorised()
      
       return View("NotAuthorised");
    

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

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

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

public ActionResult NotAuthorised()
  
   return View("NotAuthorised");

【讨论】:

非常感谢。期待您的回答。 这两个我都用过。 return View("~/Views/Shared/NotAuthorised.cshtml");并返回 View("NotAuthorised"),它们都可以工作。

以上是关于MVC-3 ASP.NET 共享视图-重定向-Razor的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET MVC 3 - 重定向到另一个动作

ASP.Net MVC 3 将未经授权的用户重定向到 loginUrl

使用参数重定向到视图不起作用(ASP.NET Core)

ASP .NET MVC:如果不满足特定条件,则重定向到视图

如何在 Asp.Net Mvc 3 中显示自定义错误页面?

在 ASP.NET Core 中未经授权时重定向到登录