gpt4 book ai didi

c# - ASP.NET MVC5 : RedirectToAction

转载 作者:太空狗 更新时间:2023-10-30 01:17:05 25 4
gpt4 key购买 nike

我希望如果用户无权访问特定页面,则将重定向到此页面 “ErrorAccessPage.cshtml”。此页面没有任何 Controller 。它位于文件夹名称 Shared 中。

逻辑是这样的:

if (user has access){
return View();
}
else
{
return RedirectToAction("//how to input the page here?");
}

更新:

我把代码改成这样之后:

if (moduleViewModel.CanRead == true){
return View();
}
else
{
return RedirectToAction("~/Shared/ErrorAccessPage.cshtml");
}

enter image description here

最佳答案

没有 Controller 就不能 RedirectToAction,因为 Action 必须存在于 Controller 上。也就是说,您可以重定向到“普通”html 文件:

Redirect("~/Shared/ErrorAccessPage.html");

或者您可以直接从当前 Controller 操作返回 View ,而无需重定向:

return View("~/Shared/ErrorAccessPage.cshtml");

至于您更新的错误消息,由于您试图访问 Views 文件夹之外的 View ,MVC 禁止提供该文件。您有两个选择:

将 View 移动到 views 文件夹中:

return View("~/Views/Shared/ErrorAccessPage.cshtml");

通过添加以下内容,允许 MVC 从 Views 文件夹外部提供 View :

<add key="webpages:Enabled" value="true" />

到你的 web.config

出于安全和一致性的原因,建议使用前者。

关于c# - ASP.NET MVC5 : RedirectToAction,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32941100/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com