在动作过滤器中实例化视图模型?

时间:2011-12-21 11:47:17

标签: asp.net-mvc asp.net-mvc-3 action-filter

问:如何在action-method中提供在action-filter中实例化的对象?

背景

我在MVC网站上有很多表格(等等)。

每个都有自己的viewmodel,它继承自基类型(FormPage)。

我对这些的约定是将viewmodel类型命名为“Form”前面的action-name。所以我的ContactUs视图模型是FormContactUs:FormPage。

为所有表单设置了相同的基本viewmodel属性,并且我在action方法中调用了一个泛型实用程序函数来执行此操作。

设置viewmodel,根据action-name和命名约定选择类型,并在action-filter中设置所有表单共有的基本属性,这将使这有点干。我唯一的障碍似乎是弄清楚如何在action-method中的过滤器内实例化对象。

1 个答案:

答案 0 :(得分:3)

  

问:如何在action-method中提供在action-filter中实例化的对象?

您可以将其存储在整个请求生命周期中可用的HttpContext.Items中。话虽这么说,自定义模型绑定器似乎比动作过滤器更适合您的场景。