所有视图模型都继承自'BaseViewModel',我可以在OnActionExecuting中设置它吗?

时间:2011-01-22 04:22:21

标签: asp.net asp.net-mvc

如果我的所有操作都有一个继承自BaseViewModel的模型,是否可以从OnActionExecuting方法初始化此模型?

目前我的所有行动都是这样做的:

var model = new SomeModel();

model.User = Users.Get(...);

现在我在OnActionExecuting中加载用户对象,所以我希望我能以某种方式从那里设置我的模型。

1 个答案:

答案 0 :(得分:2)

您无法在OnActionExecuting中执行此操作,因为此时您不知道要使用哪个BaseViewModel子类。但是,您可以在OnActionExecuted中更新模型,该模型在操作方法之后但在渲染视图之前运行。

您很可能只在视图中填充这些属性,但如果您确实需要在操作方法中访问它们,可以将它们放入ViewAag或OnActionExecuting中的控制器属性,并将它们添加到OnActionExecuted中的模型中< / p>