c# - 如何在视图结果对象中传递消息?
问题描述
授权失败后,我将用户重定向回登录页面,这可行,但我也想传递一条消息。
我正在扩展 AuthorizeAttribute 类并覆盖一个方法。
public class CustomAuthorize: AuthorizeAttribute
{
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
filterContext.Result = new ViewResult { ViewName = "~/Views/Login/Login.cshtml" };
}
}
然后在我想授予对授权角色的访问权限的地方使用 CustomeAuthorize。
我尝试传递消息但不起作用。
解决方案
试试这个ViewBag
:
filterContext.Result = new ViewResult { ViewName = "~/Views/Login/Login.cshtml" };
ViewBag.ErrorMsg = "Not authorized";
在重定向视图中,调用以下命令:
@ViewBag.ErrorMsg;
或者您可以创建一个模型来呈现该错误消息,如下所示:
public class Render {
public string Msg { get; set;}
}
在控制器中:
aRender.Msg = "Not authorized"; //aRender is an object here
同样在视图中调用它:
@model YourProjectNameSpace.YourModel
@Model.Msg;
推荐阅读
- c++ - 如何在 UE4 C++ 中更新小部件?
- python - django服务器启动时如何启动单个后台任务?
- python - Python Mongoengine:如何绕过无法通过验证的文档以避免崩溃
- r - 使用 R 中的函数和循环填充空矩阵
- kotlin - Kotlin 中这段代码的“懒惰”是什么意思?
- r - 估计与 R 中删失数据的一个变量的相关性
- linux - 如何告诉`make`在哪里可以找到zlib.h?
- genymotion - Genymotion 显示扭曲的图形
- apache - 尝试在 Apache 2.4.29 和 Ubuntu 18.04 上设置安全 WebSocket
- python - 如何使用 Selenium 获取链接