将不确定变为确定~MVC3的ValidateInput属性失灵了
使用MVC3开发WEB应用程序遇到一个问题,在使用xheditor编辑器填写复杂内容时,在POST动作后,出现了不能添加的情况,这是正常的,因为我没有在控制器里设置ValidateInput,但当我设置了ValidateInput属性,或者在Action上添加ValidateInput特性后,结果还是一样,不能提交!
这是怎么回事?原来在web.config里有个设置约束了它,requestValidationMode对于.net framework4.0版本来说,它比之前的版本进行了更大成
程序的优化,这可以被设置为4.0和2.0,对于MVC3项目,它被默认为4.0
4.0(默认)。 HttpRequest 对象在内部设置一个标志,该标志指示每当访问 HTTP 请求数据时应触发请求验证。 这可保证在请求期间访问数据(如 cookie 和 URL)之前触发请求验证。 配置文件中页元素(如果有的话)的请求验证设置或单独页面中的 @ 页指令的请求验证设置将被忽略。
2.0. 仅对网页(而不是对所有 HTTP 请求)启用请求验证。 此外,配置文件中的 pages 元素(如果有的话)的请求验证设置或单独页中的 @ Page 指令的请求验证设置用来确定要验证哪些页请求。
<configuration> <system.web> <httpRuntime requestValidationMode="2.0"/> </system.web> </configuration>