gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 03:36:08 24 4
gpt4 key购买 nike

我想知道如何使用 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 Controller 中有一个 Post 操作:

public void Post(Enquiry enquiry)
{
enquiry.EnquiryDate = DateTime.Now;
context.DaybookEnquiries.Add(enquiry);
context.SaveChanges();
}

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

最佳答案

为了关注点分离,我建议您使用 Action 过滤器进行模型验证,这样您就不必太在意如何在您的 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);
}
}
}

关于c# - 在 ASP.NET Web API 中处理 ModelState 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11686690/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com