ViewModel使用FilterAttributes的单根继承层次结构或ViewData注入

时间:2009-04-07 07:04:19

标签: c# .net asp.net-mvc

在之前的项目中,我使用单根继承来获取MVC viewModel。

一切正常并且有效地向站点主站提供数据,但是控制器操作有点痛苦。为了每次都正确构造根视图数据,我们必须覆盖(使用方法隐藏)Controller.View()。

这次我很想尝试使用属性ViewData注入,并且想知道是否有人知道这种方法存在任何陷阱。

此技术涉及让action方法设置ViewData.Model,然后使用属性为指定供Site master使用的数据设置ViewData项。我可以使用ViewDataDictionary扩展方法强烈地键入回溯。

非常感谢任何帮助。

更新:我正在采用过滤器注入方法,感觉比其他方式更清晰。更干净。我将IoC容器注入过滤器,为他们提供了构建站点范围公共数据所需的必要提供程序。虽然我必须为每个我想要共同的“事物”编写一个Filter和一个帮助器方法,但它可以释放控制器操作中Model数据的构造。

其他人也走了这条道路吗?

更新2:耶!我想我难倒了Stackoverflow

1 个答案:

答案 0 :(得分:1)

当结果是ViewResult时,如何使用基本控制器,在OnActionExecuted中注入公共视图数据。这样,您只需要在一个地方实现对这些数据的检索 - 也许,与您的ViewDataDictionary扩展相结合,以允许您以强类型的方式访问它。