使用ASP.NET MVC WEB API项目进行MVC万无一失的验证

Iev*_*nov 2 asp.net-mvc-4 asp.net-web-api foolproof-validation

似乎Foolproof Validation不适用于WEB API:

// POST api/values
public void Post(MyModel model)
{
}    

public class MyModel
{
    public int Id { get; set; }
    public bool Condition { get; set; }
    [RequiredIfFalse("Condition")]
    public string Title { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

小提琴手:

User-Agent: Fiddler
Content-Type: application/json; charset=utf-8
Host: localhost:3858
Content-Length: 24


{Id: 1, Condition: true}
Run Code Online (Sandbox Code Playgroud)

响应:

{"Message":"An error has occurred.","ExceptionMessage":"The method or operation is not implemented.","ExceptionType"
Run Code Online (Sandbox Code Playgroud)

相同的代码适用于经典的MVC 4 temaplate.

Mar*_*nes 6

不,它不会......

从快速查看源代码,这里FoolproofValidator被从inheritting绑在System.Web.Mvc命名空间System.Web.Mvc.DataAnnotationsModelValidator所以这个库是不会为工作的WebAPI.

有一个DataAnnotationsModelValidatorfor,System.Web.Http所以它可能能够被移植但我无法在项目网站上看到已经完成的分支或版本.