3

我收到带有此错误消息的 HttpRequestValidationexception:

“从客户端检测到潜在危险的 Request.Form 值”。

但是我在出现错误的属性上有 AllowHtml。问题是,稍后在我的代码中,我将以女巫格式获得以下属性,我将展示我的观点ControllerContext.HttpContext.Request.Params.AllKeys.Contains("format")。在这个“Param Getter”上,我得到了错误。

假设我的代码类似于以下内容:

public class House
{
    [AllowHtml]
    public string Text { get; set; }
    public string Name { get; set; }
}

[HttpPost, ValidateAntiForgeryToken]
public ActionResult CreateTopic(House h)
{
 //business code
 if(ControllerContext.HttpContext.Request.Params.AllKeys.Contains("format"))
 {
    Return view;
 }
 }

我该如何解决这个问题?我已经尝试使用ValidateInput(false)控制器操作方法上的属性。任何的想法?

4

1 回答 1

5

尝试将此添加到您的 web.config<system.web>部分中:

<httpRuntime requestValidationMode="2.0"/>

然后在您的操作中包含该[ValidateInput(false)]属性。

Scott Hansleman在这里解释了这个特性。

于 2012-06-11T16:36:39.810 回答