Asp.net mvc 从属性扩展添加到ViewData[]集合

Asp.net mvc 从属性扩展添加到ViewData[]集合,asp.net-mvc,viewdata,authorize-attribute,Asp.net Mvc,Viewdata,Authorize Attribute,我编写了一个扩展类来定制我的action方法的AuthorizeAttribute,我希望在满足特定条件时能够将消息注入到视图中。当用户未经授权但未将我的消息添加到我的ViewData集合时,我使用以下代码加载共享视图。有什么想法吗 public override void OnAuthorization(AuthorizationContext filterContext) { base.OnAuthorization(filterContext); if (IsNotAuth

我编写了一个扩展类来定制我的action方法的AuthorizeAttribute,我希望在满足特定条件时能够将消息注入到视图中。当用户未经授权但未将我的消息添加到我的ViewData集合时,我使用以下代码加载共享视图。有什么想法吗

public override void OnAuthorization(AuthorizationContext filterContext)
{
    base.OnAuthorization(filterContext);
    if (IsNotAuthorized)
    {
        filterContext.Result = new ViewResult { ViewName = "NotAuthorized" };
        filterContext.Controller.ViewData["Message"] = "Go Away";
    }
}
我还尝试在调用上方设置我的ViewData[“Message”]收集项以更改视图,但没有成功。

您是否尝试过

filterContext.Result = new RedirectResult("Home/Index");
我不知道如何添加ViewData,但这至少会让您找到未授权的控制器

我会一直寻找代码添加到查看数据的同时,或直到有人张贴它

编辑

这可能会有所帮助

你试过了吗

filterContext.Result = new RedirectResult("Home/Index");
我不知道如何添加ViewData,但这至少会让您找到未授权的控制器

我会一直寻找代码添加到查看数据的同时,或直到有人张贴它

编辑

这可能会有所帮助


hmm..您链接的解决方案似乎是针对其他内容的。其他人有其他想法吗?hmm..您链接的解决方案似乎是针对其他内容的。其他人有其他想法吗?