在之前的项目中,我使用单根继承来获取MVC viewModel。
一切正常并且有效地向站点主站提供数据,但是控制器操作有点痛苦。为了每次都正确构造根视图数据,我们必须覆盖(使用方法隐藏)Controller.View()。
这次我很想尝试使用属性ViewData注入,并且想知道是否有人知道这种方法存在任何陷阱。
此技术涉及让action方法设置ViewData.Model,然后使用属性为指定供Site master使用的数据设置ViewData项。我可以使用ViewDataDictionary扩展方法强烈地键入回溯。
非常感谢任何帮助。
更新:我正在采用过滤器注入方法,感觉比其他方式更清晰。更干净。我将IoC容器注入过滤器,为他们提供了构建站点范围公共数据所需的必要提供程序。虽然我必须为每个我想要共同的“事物”编写一个Filter和一个帮助器方法,但它可以释放控制器操作中Model数据的构造。
其他人也走了这条道路吗?
更新2:耶!我想我难倒了Stackoverflow
答案 0 :(得分:1)
当结果是ViewResult时,如何使用基本控制器,在OnActionExecuted中注入公共视图数据。这样,您只需要在一个地方实现对这些数据的检索 - 也许,与您的ViewDataDictionary扩展相结合,以允许您以强类型的方式访问它。