我使用强类型视图,其中所有 ViewModel 都继承类 BaseViewModel。
在装饰所有控制器的 ActionFilter 中,我想使用模型。
现在我只能这样访问它:
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
ViewModelBase model = (ViewModelBase)filterContext.ActionParameters["viewModel"];
base.OnActionExecuting(filterContext);
}
问题是,我必须知道关键的“viewModel”。关键是 viewModel,因为在我的控制器中我使用了:
返回
查看("我的视图",
视图模型)
有没有更安全的方法来访问模型?
OnActionExecuting 在执行操作之前起作用 - 因此模型设置为 null。您可以在 OnActionExecuted 中访问 ViewData (或 ViewData.Model):
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
var model = filterContext.Controller.ViewData.Model as YourModel;
...
}
希望这可以帮助
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)