Asp.Net MVC上的HttpRequestValidationexception

elr*_*anu 2 asp.net asp.net-mvc-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;
 }
 }
Run Code Online (Sandbox Code Playgroud)

我怎么解决这个问题?我已经尝试ValidateInput(false)了控制器动作方法的属性.任何的想法?

Ter*_*rry 5

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

<httpRuntime requestValidationMode="2.0"/>
Run Code Online (Sandbox Code Playgroud)

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

Scott Hansleman 在这里解释了这个功能.