在.NETMVC中,从视图访问会话信息是否被认为是不好的做法?

在.NETMVC中,从视图访问会话信息是否被认为是不好的做法?,.net,asp.net-mvc,model-view-controller,.net,Asp.net Mvc,Model View Controller,我最近遇到了这样一种情况:从视图访问会话信息是解决问题最直观、最快捷的方法。所以,我只是没想太多就这么做了。但现在当我重温我的代码时。我对早些时候做的决定感到不安。我无法清楚地说明我所做的事情有什么错。只是一个“暗示”告诉我不应该这样做 我应该用ViewData还是TempData替换代码?这需要添加几行代码。或者我应该保持现状,因为“它没有损坏”我更喜欢将控制器方法中的数据复制到视图数据或模型本身。这实际上更多的是控制者的责任,而不是视图 我不认为官方认为这是一种不好的做法,但我可以看到它会导

我最近遇到了这样一种情况:从视图访问会话信息是解决问题最直观、最快捷的方法。所以,我只是没想太多就这么做了。但现在当我重温我的代码时。我对早些时候做的决定感到不安。我无法清楚地说明我所做的事情有什么错。只是一个“暗示”告诉我不应该这样做


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

我更喜欢将控制器方法中的数据复制到
视图数据或模型本身。这实际上更多的是控制者的责任,而不是视图


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

我的首选是将控制器方法中的数据复制到
视图数据或模型本身。这实际上更多的是控制者的责任,而不是视图


我不认为官方认为这是一种不好的做法,但我可以看到它会导致以后的维护问题。您并不真的希望您的视图与外部状态绑定;它们应该只与model/viewmodel/viewdata绑定。

你根本不是怪胎。事实上,在清理东西的时候,我是一个激进的重构者。作为将来的参考,通常最好的做法是将繁重的逻辑排除在视图之外。他们说你应该有非常瘦/愚蠢的视图,做一些小逻辑和扮演交通警察的控制器,以及处理所有深层事物的模型


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

你一点都不是怪胎。事实上,在清理东西的时候,我是一个激进的重构者。作为将来的参考,通常最好的做法是将繁重的逻辑排除在视图之外。他们说你应该有非常瘦/愚蠢的视图,做一些小逻辑和扮演交通警察的控制器,以及处理所有深层事物的模型


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

谢谢您的建议。至少你确认了我不是一个无缘无故想更改代码的怪胎。谢谢你的建议。至少你确认了我不是一个无缘无故想改变密码的怪胎。