web.config(system.web)中的ValidateInputAttribute,ValidateInput,httpRuntime requestValidationMode =“2.0”都没有修复,在我的视图中也是“ValidateRequest =”false“”。我正在使用MVC 2,Visual Studio 2010,.NET 4.0,我仍然收到以下错误:
A potentially dangerous Request.Form value was detected from the client (Body="<p>test</p>").
这是CKEditor。我已经看过MVC2 application with Ckeditor "potentially dangerous Request.Form了,但那可能已经过时了。
请帮忙!!感谢。
更新
Soooo ....结果你必须调整根web.config,而不是你的Views文件夹中的web.config。甜蜜的怜悯。谢谢大家!
答案 0 :(得分:1)
我发现你需要转到控制器上的Action,它接收来自CKEditor增强形式的帖子数据,并在该操作上添加如下属性:
[ValidateInput(false)]
public ActionResult UpdateText(string HtmlText)
{
Repository.Save(HtmlText);
...
return View();
}
答案 1 :(得分:1)
到web.config的System.Web部分添加 -
<httpRuntime requestValidationMode="2.0"/>
并使用
[ValidateInput(false)]
关于动作方法
答案 2 :(得分:1)
作为先前建议的替代方法,我发现传递给控制器的HTML编码解决了该问题。
您可以通过将config.htmlEncodeOutput = true;
添加到CKEditor的配置文件(〜/ ckeditor / config.js)中来实现。
相关文档可以在以下网址找到:https://docs-old.ckeditor.com/ckeditor_api/symbols/CKEDITOR.config.html#.htmlEncodeOutput。
答案 3 :(得分:0)
您可能希望在aspx.cs站点中覆盖 OnError 事件(在此错误中触发)并处理此错误
更新
protected override void OnError(EventArgs e)
{
base.OnError (e);
}
我没有对此进行测试,但是将此方法留空(只需删除:base.OnError(e);在复制粘贴到代码之前)可能会解决您的问题。