MVC3在Mono中运行时使用ValidateInput属性不起作用的解决办法

备忘

向web.config的system.web中添加如下配置内容

<httpRuntime requestValidationMode="2.0"/>

摘自 http://stackoverflow.com/questions/486408/can-a-pages-validaterequest-setting-be-overridden

原因(来自MSDN):

RequestValidationMode 属性指定要使用的 ASP.NET 验证方法。 这可以是在 ASP.NET 版本(早于版本 4)中或在 .NET Framework 4 版 中使用的版本中使用的算法。 可以将属性设置为下列值:

  • 4.0(默认)。 HttpRequest 对象在内部设置一个标志,该标志指示每当访问 HTTP 请求数据时应触发请求验证。 这可保证在请求期间访问数据(如 cookie 和 URL)之前触发请求验证。 配置文件中页元素(如果有的话)的请求验证设置或单独页面中的 @ 页指令的请求验证设置将被忽略。
  • 2.0. 仅对网页(而不是对所有 HTTP 请求)启用请求验证。 此外,配置文件中的 pages 元素(如果有的话)的请求验证设置或单独页中的 @ Page 指令的请求验证设置用来确定要验证哪些页请求。

未验证分配给此属性的值是否匹配特定版本的 ASP.NET。 任何小于 4.0(例如 3.7、2.9 或 2.0)的数值将被解释为 2.0。 任何大于 4.0 的数值将被解释为 4.0。

若要在配置文件中设置此值,可以为 httpRuntime 元素的 requestValidationMode 特性赋值。 

posted @ 2012-04-11 17:04  傲雪啸风  阅读(442)  评论(0编辑  收藏  举报