C# ASP.NET MVC如何从应用程序中删除ViewState?
我在ASP.NET MVC源代码中查找,未找到从应用程序中删除ViewState的位置 ViewState不仅被禁用,还从应用程序中的所有页面中删除 谢谢 更新:C# ASP.NET MVC如何从应用程序中删除ViewState?,c#,asp.net-mvc,viewstate,C#,Asp.net Mvc,Viewstate,我在ASP.NET MVC源代码中查找,未找到从应用程序中删除ViewState的位置 ViewState不仅被禁用,还从应用程序中的所有页面中删除 谢谢 更新: 是否可以删除Viewstate隐藏字段?这很容易;它没有被移除。您仍然可以设置和读取ViewState。只是不要期望它包含来自上一个请求的任何内容。这实际上很方便,因为这意味着某些在ViewState中存储属性值的ASP.NET服务器控件可以在ASP.NET MVC中工作。只要将ViewState从一个请求保存到另一个请求并不重要,这
是否可以删除Viewstate隐藏字段?这很容易;它没有被移除。您仍然可以设置和读取ViewState。只是不要期望它包含来自上一个请求的任何内容。这实际上很方便,因为这意味着某些在ViewState中存储属性值的ASP.NET服务器控件可以在ASP.NET MVC中工作。只要将ViewState从一个请求保存到另一个请求并不重要,这些控件仍然可以正常工作
当然,从一个请求到另一个请求删除ViewState的持久性会使它几乎毫无用处。这就是为什么人们通常说ASP.NET MVC没有ViewState。这在技术上并不准确;ViewState实际上是存在的;它并不是以一种对任何事情都有用的形式存在的。这很容易;它没有被移除。您仍然可以设置和读取ViewState。只是不要期望它包含来自上一个请求的任何内容。这实际上很方便,因为这意味着某些在ViewState中存储属性值的ASP.NET服务器控件可以在ASP.NET MVC中工作。只要将ViewState从一个请求保存到另一个请求并不重要,这些控件仍然可以正常工作
当然,从一个请求到另一个请求删除ViewState的持久性会使它几乎毫无用处。这就是为什么人们通常说ASP.NET MVC没有ViewState。这在技术上并不准确;ViewState实际上是存在的;它只是不以任何有用的形式存在。MVC不使用viewstate——它是完全无状态的,就像web应该的那样
您可能需要稍微改变一下心态,考虑一下您的应用程序在请求-响应模式下运行,而标准asp.net使用viewstate试图欺骗开发人员(如果您愿意的话)让他们思考,或者像页面有状态一样进行编码。MVC不使用viewstate——它是完全无状态的,就像web应该的那样
你可能需要稍微改变你的思维方式,考虑一下你的应用程序在一种请求-响应模式下运行,而这种模式一直存在,但是标准asp.net使用viewstate试图欺骗开发人员(如果你愿意的话),让他们像页面有状态一样思考或编码。viewstate不是asp.net MVC页面生命周期的一部分。ViewState仅在ASP.NET WebForms应用程序中可用
这也意味着您无法使用大多数依赖ViewState的ASP.NET WebForms控件。ViewState不属于ASP.NET MVC页面生命周期的一部分。ViewState仅在ASP.NET WebForms应用程序中可用
这也意味着您无法使用大多数依赖ViewState的ASP.NET WebForms控件我知道ViewState永远不会被删除。响应我的更新:在普通ASP.NET回发中不可能删除ViewState隐藏的输入,要在HTML页面中隐藏它,只需在表单中删除runat=server即可。谢谢ASP.NET MVC永远不会将ViewState字段放入页面中。然而,WebForms设计器会在MVC页面上添加此字段,这是不将其用于MVC视图的许多好理由之一。删除这个隐藏的输入是完全安全的。我知道ViewState永远不会被删除。响应我的更新:在普通ASP.NET回发中不可能删除ViewState隐藏的输入,要在HTML页面中隐藏它,只需在表单中删除runat=server即可。谢谢ASP.NET MVC永远不会将ViewState字段放入页面中。然而,WebForms设计器会在MVC页面上添加此字段,这是不将其用于MVC视图的许多好理由之一。删除此隐藏输入是完全安全的。