处理的ModelState验证中的ASP.NET Web API [英] Handle ModelState Validation in ASP.NET Web API
本文介绍了处理的ModelState验证中的ASP.NET Web API的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我不知道我怎么能achive用的ASP.NET Web API模型验证。我有我的模型像这样:
I was wondering how I can achive model validation with ASP.NET Web API. I have my model like so:
public class Enquiry
{
[Key]
public int EnquiryId { get; set; }
[Required]
public DateTime EnquiryDate { get; set; }
[Required]
public string CustomerAccountNumber { get; set; }
[Required]
public string ContactName { get; set; }
}
然后我有一个帖子行动,我的API控制器:
I then have a Post action in my API Controller:
public void Post(Enquiry enquiry)
{
enquiry.EnquiryDate = DateTime.Now;
context.DaybookEnquiries.Add(enquiry);
context.SaveChanges();
}
我如何添加如果(ModelState.IsValid)
然后再处理错误消息向下传递给用户?
How do I add if(ModelState.IsValid)
and then handle the error message to pass down to the user?
推荐答案
有关相关分离,我会建议你用行动过滤器模型验证,所以你不必关心太多如何在API控制器做验证
For separation of concern, I would suggest you use action filter for model validation, so you don't need to care much how to do validation in your api controller:
using System.Net;
using System.Net.Http;
using System.Web.Http.Controllers;
using System.Web.Http.Filters;
namespace System.Web.Http.Filters
{
public class ValidationActionFilter : ActionFilterAttribute
{
public override void OnActionExecuting(HttpActionContext actionContext)
{
var modelState = actionContext.ModelState;
if (!modelState.IsValid)
actionContext.Response = actionContext.Request
.CreateErrorResponse(HttpStatusCode.BadRequest, modelState);
}
}
}
这篇关于处理的ModelState验证中的ASP.NET Web API的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文