星空网 > 软件开发 > ASP.net

ASP.NET Web API模型验证以及异常处理方式

 

ASP.NET Web API的模型验证与ASP.NET MVC一样,都使用System.ComponentModel.DataAnnotations。

具体来说,比如有:
[Required(ErrorMessage="")]
[Range(0, 999)]
[Bind(Exclude="")]
[DisplayName("")]
[StringLength(1024)]
...

验证扩展可以看这里:http://dataannotationsextensions.org/

在controller中如何验证模型呢?

通常是通过ModelState.IsValid.

 

public HttpResponseMessage Post(Product product){  if(ModelState.IsValid){    //    return new HttpResponseMessage(HttpStatusCode.OK);  }  else  {    return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);  }}

 

还可以通过"面向切面"的方式,自定义一个模型验证的特性ActionFilterAttibute特性。

 

public class ValidateModelAttribute:ActionFilterAttibute{  public override void OnActionExecuting(HttpActionContext actionContext)  {    if(actionContext.ModelState.IsValid == false)    {      actionContext.Response = actionContext.Request.CreateErrorResponse(HttpStatusCode.BadRequest, actionContext.ModelState);    }  }}

 

然后需要把自定义的过滤器特性注册到默认的过滤器集合中去。

 

public static class WebApiConfig{  public static void Register(HttpConfiguraiotn config)  {    config.Filters.Add(new ValidateModelAttribute());  }}

 

如果不在全局注册过滤器,我们还可以把过滤器特性打到控制器或控制器方法上去。

 

[ValidateModel]public HttpResponseMessage Post(Product product){}

 




原标题:ASP.NET Web API模型验证以及异常处理方式

关键词:ASP.NET

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

vertixglobal:https://www.goluckyvip.com/tag/26943.html
Very:https://www.goluckyvip.com/tag/26944.html
very100:https://www.goluckyvip.com/tag/26945.html
Vessi:https://www.goluckyvip.com/tag/26946.html
Vestiaire:https://www.goluckyvip.com/tag/26947.html
Vestiaire Collective:https://www.goluckyvip.com/tag/26948.html
大连有啥好玩的景点-大连有啥好玩的景点推荐孩子:https://www.vstour.cn/a/411235.html
咸阳机场到临潼景点 西安咸阳机场到临潼有多远:https://www.vstour.cn/a/411236.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流