【问题标题】:In .Net MVC, Is it considered bad practice to access session information from View?在 .Net MVC 中,从 View 访问会话信息是否被认为是不好的做法?
【发布时间】:2010-12-30 23:48:01
【问题描述】:

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

我应该用 ViewData 还是 TempData 替换我的代码?这将需要添加几行代码。还是我应该保持原样,因为“它没有损坏”?

【问题讨论】:

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


    【解决方案1】:

    你根本不是个怪胎。事实上,在清理工作方面,我是一个激进的重构者。为了将来参考,通常最好的做法是让您的观点不考虑繁重的逻辑。他们说你应该有非常瘦/愚蠢的视图,执行少量逻辑和扮演交通警察的控制器,以及处理所有深层内容的模型。

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

    【讨论】:

      【解决方案2】:

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

      我不认为这被官方认为是一种不好的做法,但我可以看到它会导致以后的维护问题。您真的不希望您的观点与外部状态相关联;它们应该只与模型/视图模型/视图数据相关联。

      【讨论】:

      • 感谢您的建议。至少你确认了我不是一个想无缘无故更改代码的怪胎。
      猜你喜欢
      • 2017-02-15
      • 1970-01-01
      • 2013-04-12
      • 2016-02-19
      • 2018-08-11
      • 2015-07-24
      • 1970-01-01
      • 2013-12-08
      相关资源
      最近更新 更多