C# 创建基础视图模型,但可以';Don’’我好像没把它扯进去
我创建了一个baseviewmodel,我的其他强类型视图模型从中继承 基本控制器:C# 创建基础视图模型,但可以';Don’’我好像没把它扯进去,c#,asp.net-mvc,asp.net-mvc-4,viewdata,C#,Asp.net Mvc,Asp.net Mvc 4,Viewdata,我创建了一个baseviewmodel,我的其他强类型视图模型从中继承 基本控制器: protected override void OnActionExecuting(ActionExecutingContext filterContext) { var baseViewModel = ViewData.Model as BaseViewModel; if (baseViewModel != null) {
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
var baseViewModel = ViewData.Model as BaseViewModel;
if (baseViewModel != null)
{
// set common properties that I want to use in all views
}
}
现在,当我在if cluase上设置断点时,baseViewModel似乎总是空的
如何将BaseViewData.Model设置为BaseViewModel?现在查看该模型还为时过早
在调用操作方法之前调用
您可以在OnActionExecuted中看到模型。视图数据用于将模型从控制器操作发送到视图 您的
OnActionExecuting
钩子在调用action方法之前。。。这就是为什么您将viewdata的模型视为null。尝试改用OnActionExecuted
然后,您可以通过以下方式使用关键字is
检查模型是否属于该基本类型:
if(ViewData.Model != null && ViewData.Model is BaseModel){
var base = ViewData.Model as BaseModel;
// set common properties
}