在我们的一个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 })%>
答案 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文件,以查看您可能要复制的设置。如果需要,您也可以逐页禁用此功能。