ValidateInput(false)和AllowHtml属性仍然导致'检测到潜在危险的Request.Form值'

时间:2011-10-25 12:43:53

标签: asp.net-mvc

我有我的模特:

public class EmailTemplateModel
{
    public int EmailTemplateId { get; set; }

    [Required]
    public string Name { get; set; }
    [Required]
    public string Subject { get; set; }

    [AllowHtml]
    [Required]        
    public string Content { get; set; }
}

在我的控制器上:

[ValidateInput(false)]
public ActionResult AddNewTemplate(EmailTemplateEditorModel model)
{
}

然而,我收到以下错误:

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

为什么我会收到这些错误,即使应使用ValidateInput / AllowHtml属性禁用此检查?看看其他帖子,我不清楚我是否需​​要这两个或只是其中一个属性...

1 个答案:

答案 0 :(得分:10)

您需要添加

<httpRuntime requestValidationMode="2.0" />

web.config。见ASP.Net 4.0 Breaking Changes。尽管配置值令人困惑,但这是 3.5 4.0 之间的重大变化 - 验证现在在管道中更早运行,之后MVC有机会根据您的属性禁用它。