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

3
我有一个名为NotAuthorised的共享视图,位于“Views/Shared”文件夹中。当用户未被授权查看页面时,我希望将其重定向到此视图。
最初,此视图位于名为Account的文件夹中。但由于我不再使用Account,因此将其移动到了Shared文件夹中,并删除了Account文件夹。
我使用以下代码进行重定向:
public ActionResult NotAuthorised()
{  
   return RedirectToAction("NotAuthorised", "Account");
}

现在我已经删除了“账户”文件夹,我正在尝试使用

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

在最后一行中,我错误地给出了共享文件夹的名称。请问有人能告诉我错在哪里吗?谢谢。
1个回答

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");
}

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接