当ModelState.IsValid为false时,“潜在危险的Request.Form值..”错误

时间:2009-07-14 07:32:40

标签: asp.net-mvc fckeditor

在我们的一个ASP.NET MVC应用程序中,我们使用FCKEditor来允许用户输入富文本。为了关闭控制器操作中的验证,我们设置了属性

[ValidateInput(false)]

只要页面中没有业务验证错误,用户就可以保存和修改富文本。

如果任何业务验证失败且ModelState.IsValid设置为false,则在呈现页面时会引发以下异常。有人能告诉我如何解决这个问题吗?

从客户端检测到一个潜在危险的Request.Form值(Programme_Overview =“

这是代码

    [ValidateInput(false)]
    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Schedule(FormCollection formValues)
    {
      // some code
      if (ModelState.IsValid)
        {
            //do something here...
        }
        else
        {               
            return View(programDetails);
        }


     }

    //// View code that render the fckeditor text area
    <%= Html.TextArea("Programme_Overview", Model.Programme.Overview, new { row = 7 })%>

4 个答案:

答案 0 :(得分:1)

刚刚搞砸了,修复了更新fck配置文件 fckconfig.js

FCKConfig.HtmlEncodeOutput = false;

应该是

FCKConfig.HtmlEncodeOutput = true ;

答案 1 :(得分:0)

您的FCKEditor可能会以某种方式提交某些HTML输出。

您可以尝试关闭验证:

public MyController
{
    [ValidateInput (false)]
    public ActionResult MyAction ()
    {
    }
}

答案 2 :(得分:0)

只需在动作中添加以下内容:

[ValidateInput(false)]
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult SomeAction() {}

答案 3 :(得分:0)

我猜这个项目是从1.0之前的RTM项目迁移过来的。

原始ASP.NET具有页面级“危险输入”验证,您正在绊倒。我们通过更改Views文件夹中的Web.config文件将其关闭到系统范围,但我不记得我们何时进行了更改。如果您的项目在此更改之前进行了更新,那么您将无法在Views文件夹中的Web.config文件中进行该设置。

因此,您可以创建一个新的MVC项目并查看Web.config文件,以查看您可能要复制的设置。如果需要,您也可以逐页禁用此功能。

http://www.asp.net/learn/whitepapers/request-validation/