在.Net MVC中,从View访问会话信息被认为是不好的做法吗?

时间:2009-12-30 02:42:16

标签: .net asp.net-mvc model-view-controller

我最近遇到了一种情况,即从视图中访问会话信息是解决问题的最直观,最快捷的方法。所以,我只是在没有考虑太多的情况下做到了。但现在我重新访问我的代码。我对我之前做出的决定感到不安。我无法清楚说明我做了什么是错误。只是一个“暗示”告诉我,我不应该这样做。

我应该用ViewData或TempData替换我的代码吗?这将需要添加几行代码。或者我应该保留原样,因为“它没有被破坏”?

2 个答案:

答案 0 :(得分:4)

我的偏好是将控制器方法中的数据复制到ViewData或模型本身。这实际上是控制器的责任,而不是视图。

我认为它不被正式视为糟糕的练习,但我可以看到它导致以后的维护问题。你真的不希望你的观点与外部状态联系在一起;它们只应绑定到model / viewmodel / viewdata。

答案 1 :(得分:2)

你根本不是个怪人。事实上,在清理事物时,我是一个激进的重构者。为了将来参考,通常最好的做法是保持沉重的逻辑不受您的意见影响。他们说你假设有非常瘦/愚蠢的观点,控制器做一些逻辑和玩交通警察,以及处理所有深层东西的模型。

我尽我所能将视图逻辑限制为ViewModel和ViewData上的简单操作。我还使用自定义的HtmlHelpers,RenderPartials和RenderActions来保持我的视图简洁和简单。

相关问题