2

似乎万无一失的验证不适用于 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; }
}

提琴手:

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


{Id: 1, Condition: true}

回复:

{"Message":"An error has occurred.","ExceptionMessage":"The method or operation is not implemented.","ExceptionType"

相同的代码适用于经典的 MVC 4 模板。

4

1 回答 1

6

不,它不会...

从这里快速查看源代码,FoolproofValidator它通过继承与 System.Web.Mvc 命名空间相关联,System.Web.Mvc.DataAnnotationsModelValidator因此该库不适用于 WebApi。

有一个DataAnnotationsModelValidatorforSystem.Web.Http所以它可能可以被移植,但我在项目站点上看不到已经完成的分支或版本。

于 2013-03-01T11:30:13.893 回答