一般使用富文本编辑器的时候。提交的表单中包含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"];