Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 用于向ASP.NET MVC 4中的视图提供公共数据的操作筛选器_Asp.net Mvc_Asp.net Mvc 4 - Fatal编程技术网

Asp.net mvc 用于向ASP.NET MVC 4中的视图提供公共数据的操作筛选器

Asp.net mvc 用于向ASP.NET MVC 4中的视图提供公共数据的操作筛选器,asp.net-mvc,asp.net-mvc-4,Asp.net Mvc,Asp.net Mvc 4,我正试图为从ViewModelBase派生的所有视图获取一些公共属性。除了我遇到了第22条军规 我的ViewModelBase的常见属性是:User和Environment(还有更多属性,但对于这个问题,这两个属性就足够了) 现在,我有一个全局筛选器来分配这两个属性—ViewModelBase.User属性是从先前由授权筛选器分配的BaseController.User中分配的 它在所有情况下都能很好地工作,但这是:授权过滤器有时根据业务逻辑决定将用户重定向到“尚未批准”页面。这是这样做的: v

我正试图为从
ViewModelBase
派生的所有视图获取一些公共属性。除了我遇到了第22条军规

我的
ViewModelBase
的常见属性是:
User
Environment
(还有更多属性,但对于这个问题,这两个属性就足够了)

现在,我有一个全局筛选器来分配这两个属性—
ViewModelBase.User
属性是从先前由授权筛选器分配的
BaseController.User
中分配的

它在所有情况下都能很好地工作,但这是:授权过滤器有时根据业务逻辑决定将用户重定向到“尚未批准”页面。这是这样做的:

var notApprovedView = new ViewResult();
notApprovedView.ViewName = "NotYetApproved";
filterContext.Result = notApprovedView;
除此之外,在本例中,ViewModel还没有应该由全局过滤器分配的公共属性,这将导致运行时异常

如果我需要分配公共属性,并且某些公共属性可能会根据授权而变化,那么处理这种情况的正确方法是什么(即最佳做法,而不是黑客)


谢谢。

我想我可能因为这棵树而错过了森林。。。对不起

我可以在授权筛选器中执行以下操作:

var notApprovedView = new ViewResult();
notApprovedView.ViewName = "NotYetApproved";

// add this line    
notApprovedView.Model = new ViewModelBase(){User = this.user};

filterContext.Result = notApprovedView;