出于某种原因,我注意到在运行时查看我的ASP.NET页面的源代码时,会创建标记。
<input type="hidden" name="_VIEWSTATE" id="_viewstate" value="..lots of text.." />
和
<input type="hidden" name="_EVENTVALIDATION" id="_EVENTVALIDATION" value="..lots of text.." />
提前致谢!
答案 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”但不建议使用!