mvc中validateinput属性失效
mvc中validateinput属性失效
一、ASP.NET 版本不同版本对请求验证的处理
1、4.0及以上
HttpRequest 对象在内部设置一个标志,该标志指示每当访问 HTTP 请求数据时应触发请求验证。 这可保证在请求期间访问数据(如 cookie 和 URL)之前触发请求验证。 配置文件中页元素(如果有的话)的请求验证设置或单独页面中的 @ 页指令的请求验证设置将被忽略.
2、2.0
仅对网页(而不是对所有 HTTP 请求)启用请求验证。 此外,配置文件中的 pages 元素(如果有的话)的请求验证设置或单独页中的 @ Page 指令的请求验证设置用来确定要验证哪些页请求。
二、当在MVC中加了[ValidateInput(false)]属性后,在.NET Framework 4.0中,validateinput属性失效的解决方法
原因是: 在4.0中,请求验证在页面和ACTION验证之前进行.因此设置validateinput并不能禁用验证.
解决办法:
在配置文件中设置此值,可以为 httpRuntime 元素的 requestValidationMode 特性赋值。将验证模式设置为2.0 即:
<system.web>
<httpRuntime requestValidationMode="2.0"/>
</system.web>