是ASP.NET MVC无状态
本文关键字:状态 MVC NET ASP | 更新日期: 2023-09-27 18:17:55
我听说MVC . net是无状态的。这意味着什么?为什么MVC是无状态的?
状态在ASP中管理。. NET (MVC和WebForms)通过几种方式:
- <
- 会话/gh><
- 饼干/gh>
- 形式帖子 <
- 应用程序/gh>查询字符串
- 缓存
- <
- 上下文/gh>
MVC消除了ViewState,这意味着控件(文本框、复选框等)在每次返回页面时都会丢失它们的值。您需要手动或通过其他方式(例如,模型绑定)重新填充它们。
MVC并不是真正的无状态,但它确实消除了ASP中最常见的一种持久化状态的方法。. NET——ViewState.
MVC是无状态的因为HTTP是。HTTP中没有指示会话何时开始或结束的内容。
每个web框架都试图通过使用cookie或请求/响应特性(如查询字符串或FORM post)来克服这个问题。
MVC不是(完全)无状态的。没有web框架。
我认为这是指MVC取消_VIEWSTATE字段的事实。
但一定要提供链接或更多信息。
web是无状态的,因此任何建立在HTTP之上的东西都是无状态的。我所说的无状态是指每个请求/响应都是一个原子单元,不知道前面的任何请求。
http中有一些机制允许你在请求之间保持某种形式的状态,比如Session和Application,但一般来说,这些应该尽可能少使用。
Webforms试图通过引入ViewState和Postback来创建状态假象。但这并不能改变web是无状态的这一事实。我想说所有的网络通信都是无状态的,除了一些像SignalR这样的新技术[Async signaling library for ASP.NET to help build real-time, multi-user interactive web applications]
.
你发出一个请求并得到一个响应,就是这样,也许你正在考虑的是不使用ViewState像在webforms。