我听说MVC .NET是无状态的。这有什么意义,为什么MVC是无国籍的。
答案 0 :(得分:8)
状态通过several means在ASP.NET(MVC和WebForms)中进行管理:
MVC消除了ViewState,这意味着每次回发页面时控件(文本框,复选框等)都会丢失它们的值。您需要手动或通过其他方式重新填充它们(例如,模型绑定)。
MVC并非真正的无状态,但它确实删除了一种在ASP.NET中持久化状态的最常用方法 - ViewState。
答案 1 :(得分:7)
MVC是无状态的,因为HTTP是。 HTTP中没有任何内容指示会话何时开始或结束。
每个Web框架都尝试使用cookie或请求/响应功能(如查询字符串或FORM post)来克服此问题。
答案 2 :(得分:5)
MVC不是(完全)无国籍的。没有Web框架。
我认为这是指MVC取消_VIEWSTATE字段的事实。
但请提供链接或更多信息。
答案 3 :(得分:5)
网络是无状态的,因此构建在http之上的任何内容都是无状态的。无状态我的意思是每个请求/响应都是一个原子单元,不知道以前的任何请求。
有一些带有http的机制允许你在Session和Application之类的请求之间保持某种形式的状态,但通常情况下,这些应该尽可能少地使用。
Webforms试图通过引入ViewState和Postback来创建状态错觉。但这并没有改变网络无国籍的事实。
答案 4 :(得分:2)
我想说除了SignalR之类的一些新技术之外,所有的网络通信都是无状态的
[Async signaling library for ASP.NET to help build real-time, multi-user interactive web applications]
您发出请求并获得响应,也就是说,您可能正在考虑的不是在webforms中使用ViewState。