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

art*_*olk 2 asp.net request-validation asp.net-mvc-3 asp.net-mvc-2

美好的一天!

我打算将我的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)之外它将如何工作?

提前致谢!

Dar*_*rov 5

  1. 您还需要<httpRuntime requestValidationMode="2.0"/>在ASP.NET 4.0中进行设置.
  2. 同样在ASP.NET MVC 2(.NET 4.0),但除了你有更精细的控制[AllowHtml],其可以被放置在您的视图模型,而不是禁用验证整个请求的单个属性的属性:

    public class MyViewModel
    {
        [AllowHtml]
        public string SomeHtmlProperty { get; set; }
    
        public string SomeOtherProperty { get; set; }
    }
    
    Run Code Online (Sandbox Code Playgroud)

并有一个像这样的控制器动作:

[HttpPost]
public ActionResult Update(MyViewModel model) { ... }
Run Code Online (Sandbox Code Playgroud)