0

在我们的一个 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

4 回答 4

1

刚刚出现这种情况,修复是更新 fck 配置文件 fckconfig.js

FCKConfig.HtmlEncodeOutput = false;

应该

FCKConfig.HtmlEncodeOutput = true ;
于 2011-02-25T15:00:48.577 回答
0

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

原始 ASP.NET 具有页面级“危险输入”验证,您会遇到这种情况。我们已经通过更改 Views 文件夹中的 Web.config 文件在系统范围内关闭了它,但我不记得确切的更改时间。如果您的项目早于此更改,那么您将不会在 Views 文件夹中的 Web.config 文件中拥有该设置。

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

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

于 2009-07-15T12:59:09.713 回答
0

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

您可以尝试关闭验证:

public MyController
{
    [ValidateInput (false)]
    public ActionResult MyAction ()
    {
    }
}
于 2009-07-14T07:36:21.107 回答
0

只需将以下内容添加到您的操作中:

[ValidateInput(false)]
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult SomeAction() {}
于 2009-07-14T07:37:08.577 回答