安全简单解决MVC 提示 检测到有潜在危险的 Request.Form 值.

安全简单解决MVC 提示 检测到有潜在危险的 Request.Form 值.

一般使用富文本编辑器的时候。提交的表单中包含HTML字符,就会出现此错误提示。

使用

ValidateInput(false)

特性标签并不能解决此问题。

网上前篇一律的回答是修改Web.Config 

<pages validateRequest="false"/>

以此来关闭表单的验证。以前我也这么做,但总感觉不妥。

这种实现方式就把全站的表单安全验证给关闭了。肯定不是一个安全且正确的解决方式。

根据报错中的msdn帮助链接。很容易的就找到了解决此问题最好的解决方法。

如果控制器的参数是用一个实体来接收。那么给这个实体中会出现HTML的属性一个[AllowHtml]特性。

无需其他设置。

一直找不到AllowHtml是哪个命名空间下的。

不得不吐槽百度。怎么都收不到相关资料,翻出去用谷歌,一搜即是。

需添加对System.Web.Mvc.dll的引用

然后: using System.Web.Mvc;

[AllowHtml]
public string Prop1 { get;  set; }

如果是通过Request来接收。那么就使用Unvalidated

GET

 Request.Unvalidated["Content"];

POST

Request.Unvalidated.Form["content"];