在控制器外部设置ViewData

时间:2009-03-24 15:40:17

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

我正在尝试创建一个记录器,它将LINQ执行的查询写入使用优秀的JavaScript库SyntaxHighlighter格式化的页面。

为此,我已将DataContext的Log属性设置为我的自定义记录器,该记录器运行良好。

现在我只需要获取当前的Controller对象(在控制器执行上下文之外),这样我就可以设置一些需要输出的ViewData。

有什么建议吗?

1 个答案:

答案 0 :(得分:3)

如果你想在控制器之外执行操作,那么动作过滤器(等)是一个不错的选择;只需从ActionFilterAttribute继承,覆盖OnActionExecuting(等)以将数据注入视图,并使用[YourCustomFilter]标记您的控制器。

Like this


(原创;我可能误解了)

最好在这里使用依赖注入,方法是将日志编写器作为构造函数参数传递到存储库中(理想情况下通过类似StructureMap的方式,通过StructureMapControllerFactory与MVC一起使用,或者类似)。