MVC 2.0中的“潜在危险的Request.Form ...”错误

时间:2010-10-25 12:50:36

标签: asp.net-mvc-2 ckeditor

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。甜蜜的怜悯。谢谢大家!

4 个答案:

答案 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);在复制粘贴到代码之前)可能会解决您的问题。