必需如果不适用于int属性

时间:2015-10-13 12:17:26

标签: c# asp.net-web-api2 expressiveannotations

我使用ExpressiveAnnotations对我的属性进行了一些验证。现在,我遇到了一个问题,我无法验证int类型的属性:

public class MyModel {

    public string AorB { get; set; }

    [RequiredIf("AorB == 'B'")]
    public string Foo { get; set; }

    [RequiredIf("AorB == 'B'")]
    public int Bar { get; set; }
}

我的控制器

public class MyController : ApiController
{

    public IHttpActionResult Post(MyModel myModel)
    {
        if(ModelState.IsValid)
        {
            // do something
            return Ok();
        }

        return BadRequest("To bad");
    }
}

当我发布时:{"AorB" : "B", "Bar" : 1}我收到一条消息,因为AorB == B"需要" Foo;并且系统返回BadRequest

当我发帖时:{"AorB" : "B", "Foo" : "foo"}我没有收到消息,系统返回确认。

1 个答案:

答案 0 :(得分:2)

好的,它没有验证的原因是因为它应该是int?所以模型看起来像这样:

fs