在ASP.NET Web API中处理ModelState验证

我想知道如何使用ASP.NET Web API进行模型验证。我有这样的模型:

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控制器中执行了Post操作:

public void Post(Enquiry enquiry)

{

enquiry.EnquiryDate = DateTime.Now;

context.DaybookEnquiries.Add(enquiry);

context.SaveChanges();

}

如何添加if(ModelState.IsValid)然后处理错误消息以传递给用户?

回答:

为了分开关注,我建议您使用动作过滤器进行模型验证,因此您无需过多关心如何在api控制器中进行验证:

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);

}

}

}

以上是 在ASP.NET Web API中处理ModelState验证 的全部内容, 来源链接: utcz.com/qa/402069.html

回到顶部