隐藏的输入类型在运行时在ASP.net中创建

时间:2010-01-19 06:45:52

标签: c# asp.net html vb.net

出于某种原因,我注意到在运行时查看我的ASP.NET页面的源代码时,会创建标记。

<input type="hidden" name="_VIEWSTATE" id="_viewstate" value="..lots of text.." />

<input type="hidden" name="_EVENTVALIDATION" id="_EVENTVALIDATION" value="..lots of text.." />
  1. 为什么这是什么?它是什么?
  2. 如何确保不创建这些?
  3. 提前致谢!

2 个答案:

答案 0 :(得分:1)

有可能你不想摆脱其中任何一个。

_VIEWSTATE隐藏字段用于存储ASP.NET WebForms ViewState的编码值。如果是正常的WebForm风格的开发(而不是MVC),那么当您在代码中执行string someText = TextBox1.Text之类的操作时,您始终会使用ViewState;或者当您执行PostBack并且所有文本框,复选框,下拉值都被保留而不必执行任何操作 - 这是ViewState的所有功能。它非常方便,几乎是ASP.NET WebForms的标准做法。 可以使用“@ Page”指令内的EnableViewState属性禁用每页的ViewState。我会假设你不想这样做,但你可能会注意到很多事情都不会突然发生。

_EVENTVALIDATION是ASP.NET Event Validation方案的一部分 - 这也可以在@Page指令中禁用(我相信该属性为EnableEventValidation)但我无法想象为什么你我想这样做。

答案 1 :(得分:1)

_EVENTVALIDATION控件验证回发以降低未经授权的回发请求和回调的风险。您可以通过设置

来禁用此功能
<pages enableEventValidation="false"> 

在web.config中设置(或设置

@Page指令中的EnableEventValidation =“false”但不建议使用!