创建一个基本视图模型,但似乎不能在onactionexecution中钩入它
本文关键字:不能 onactionexecution 一个 模型 视图 创建 | 更新日期: 2023-09-27 18:10:28
我创建了一个baseviewmodel,我的其他强类型视图模型从它继承。
BaseController:
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语句上设置断点时,似乎baseViewModel总是null。
如何设置基本的ViewData。模型是BaseViewModel?
onactionexecution查看模型还为时过早。
在action方法被调用之前调用。
你可以在onactionexecute中看到model
ViewData
旨在将模型从控制器动作发送到视图。
你的OnActionExecuting
钩子是在action方法被调用之前…这就是为什么你看到viewdata的模型为空。试试用OnActionExecuted
代替。
然后,您可以使用关键字is
检查模型是否属于该基本类型:
if(ViewData.Model != null && ViewData.Model is BaseModel){
var base = ViewData.Model as BaseModel;
// set common properties
}