ASP.NET MVC是无状态的吗?

我听说MVC .NET是无状态的。 这有什么意义,为什么MVC是无国籍的。

MVC是无状态的,因为HTTP是。 HTTP中没有任何内容指示会话何时开始或结束。

每个Web框架都试图通过使用cookie或请求/响应function(如查询字符串或FORM post)来克服此问题。

State通过以下几种方式在ASP.NET(MVC和WebForms)中进行管理:

  • 会议
  • cookies
  • 表格post
  • 应用
  • 请求参数
  • 高速缓存
  • 上下文

MVC消除了ViewState,这意味着每次回发页面时控件(文本框,复选框等)都会丢失它们的值。 您需要手动或通过其他方式重新填充它们(例如,模型绑定)。

MVC不是真正无状态的,但它确实删除了在ASP.NET中持久化状态的最常见方法之一–ViewState。

MVC不是(完全)无国籍的。 没有Web框架。

我认为这是指MVC取消_VIEWSTATE字段的事实。

但请提供链接或更多信息。

网络是无状态的,因此构建在http之上的任何东西都是无状态的。 无状态我的意思是每个请求/响应都是一个primefaces单元,不知道任何先前的请求。

有一些带有http的机制允许你在Session和Application之类的请求之间保持某种forms的状态,但一般来说,这些应该尽可能少地使用。

Webforms试图通过引入ViewState和Postback来创建状态错觉。 但这并没有改变网络无国籍的事实。

我会说所有的网络通信都是无状态的,除了一些新技术,如SignalR [Async signaling library for ASP.NET to help build real-time, multi-user interactive web applications]

您提出请求并获得响应,也就是说,您可能正在考虑的是在webforms中不使用ViewState。