在ASP.NET MVC的Windsor配置中,控制器生活方式是否应该是瞬态的?

mke*_*y33 5 asp.net-mvc castle-windsor ioc-container asp.net-mvc-controller

我遇到了一个问题,我在我的视图中有一个Html.DropDownList,它会在我第一次提交表单时回发所选的值,但每个后续的回发只会发布初始回发的数据.所以我将sports ="transient"添加到组件元素中,我已经为city windsor配置了我的控制器,这解决了问题,但当然回传需要更长的时间,因为每个请求实例化一个新的控制器.鉴于上述信息,有哪些见解,建议或解决方案可能有助于确定我对控制器生活方式的原始问题?感谢所有的帮助和支持!

Lev*_*evi 6

MVC控制器是瞬态的.考虑到这一点,这有几个原因是有意义的.首先,如果单个实例用于服务多个请求,并且如果多个请求同时碰到同一个控制器,那么您将会遇到一些相当奇怪的竞争条件.其次,HTTP本质上是无状态的,并且请求彼此独立存在.这体现在控制器的瞬态生活方式上.


Dio*_*ion 5

瞬态,是的,但为了利益,为什么不用PerWebRequest而不是Transient?我见过几个使用PerWebRequest生活方式的博客,我想不出有什么原因.任何答案?