模型属性以忽略html实体的验证

时间:2011-08-04 18:54:29

标签: asp.net-mvc asp.net-mvc-3 model-validation

我想在数据库中输入html并将其显示为html。我写了这样的视图模型:

public class TemplateVM
{
    [HiddenInput(DisplayValue = false)]
    public int TemplateId { get; set; }
    public string Name { get; set; }
    public string Content { get; set; }
}

属性Content应该能够接受html。我怎样才能做到这一点?现在,它抛出错误:

A potentially dangerous Request.Form value was detected from the client (Content="<p>test</p>").

我知道在动作中使用它,但我不希望它适用于每个属性。:

[ValidateInput(假)]

2 个答案:

答案 0 :(得分:4)

我建议您在ValidateInput属性上使用AllowHtml属性,而不是在整个模型上使用Content属性:

public class TemplateVM
{
    [HiddenInput(DisplayValue = false)]
    public int TemplateId { get; set; }
    public string Name { get; set; }
    [AllowHtml]
    public string Content { get; set; }
}

此属性仅适用于Content属性,而其他属性仍然有效。

答案 1 :(得分:3)

[ValidateInput(false)]置于TemplateVM之上。它适用于所有房产。