2017-09-20 83 views
0

我有一个Web API应用程序,我有一个HTTP POST动作以DTO如下:如何在web api中动作参数的类型不匹配时返回404?

public class Account 
{ 
    public string Name { get; set; } 

    public string Email { get; set; } 

    public int Age { get; set; } 
} 

但使用邮差,我可以将它传递这样的:

{ “名称”:“简单代码“,电子邮件:”[email protected]“,年龄:空}

当我发送请求时,它将Age发送为空。

如何让我的web api返回404而不发送请求,或者我是否强制验证我的代码?

回答

0

喜对我来说最快捷的方法是:

标记为[必填]您的DTO

public class Account 
{ 
    public string Name { get; set; } 

    [Required(AllowEmptyString = false)] 
    public string Email { get; set; } 

    [Required] 
    public int Age { get; set; } 
} 

然后在您的API方法

public IHttpActionResult Post([FromBody] mydto){ 

    // if model is not validated return 400 bad request 
    if(!ModelState.IsValid) return BadRequest(ModelState); 

    //or if is here it's ok 

    //return 200 OK 
    Ok(mydto); 
} 
+0

你试图公众诠释?年龄{get;组; } –

+0

你有没有试过public int?年龄{get;组; } –