gpt4 book ai didi

asp.net - [ValidateModel] 和 ASP.NET 中有效状态检查之间有什么区别?

转载 作者:行者123 更新时间:2023-12-02 06:52:56 26 4
gpt4 key购买 nike

我看到一些用于模型验证的代码:

 [ValidateModel]

以及其他代码,例如使用此代码进行模型验证的示例 WebAPI:

  if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}

谁能解释一下有什么区别以及为什么 Microsoft 的示例 WebAPI 应用程序不只使用 [ValidateModel]?

最佳答案

您确定您具有开箱即用的[ValidateModel]属性吗?因为according to this link它是自定义属性,有助于使代码更简洁,因为您可以在 Controller 中省略 ModelState.IsValid 语句,因为如果操作实现,则其模型数据已经有效。我浏览了互联网,所有 [ValidateModel] 实现都有类似的 ModelState.IsValid 代码语句:

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

我不确定,但我认为,因为[ValidateModel]是自定义属性,需要额外的空间来解释和实现,所以大多数教程更喜欢开箱即用的ModelState.IsValid .

关于asp.net - [ValidateModel] 和 ASP.NET 中有效状态检查之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33569678/

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