.NET 4.0上的ASP.NET MVC2:[ValidateInput(false)]足够了吗?

时间:2011-01-22 10:58:11

标签: asp.net asp.net-mvc-2 asp.net-mvc-3 request-validation

美好的一天!

我计划将ASP.NET MVC 2应用程序升级到.NET 4.0,并提出几个问题:

  1. 行动[ValidateInput(false)]足以接受HTML,或者我需要按照此处的说明设置<httpRuntime requestValidationMode="2.0"/>ASP.NET 4 Breaking Changes

  2. 如果我将ASP.NET MVC升级到版本3(除了升级到.NET 4.0之外)它将如何工作?

  3. 提前致谢!

1 个答案:

答案 0 :(得分:5)

  1. 您还需要在ASP.NET 4.0中设置<httpRuntime requestValidationMode="2.0"/>
  2. 与ASP.NET MVC 2(.NET 4.0)相同,但除此之外,您还可以使用[AllowHtml]属性进行更细粒度的控制,该属性可以放在视图模型的单个属性上禁用整个请求的验证:

    public class MyViewModel
    {
        [AllowHtml]
        public string SomeHtmlProperty { get; set; }
    
        public string SomeOtherProperty { get; set; }
    }
    
  3. 并有一个像这样的控制器动作:

    [HttpPost]
    public ActionResult Update(MyViewModel model) { ... }