Ala*_*an2 2 asp.net asp.net-mvc asp.net-web-api asp.net-web-api2
我看到一些用于模型验证的代码:
[ValidateModel]
Run Code Online (Sandbox Code Playgroud)
和其他代码,例如使用它进行模型验证的示例WebAPI:
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释有什么区别以及为什么来自Microsoft的示例WebAPI应用程序不仅仅使用[ValidateModel]?
你确定你有[ValidateModel]
开箱即用的属性吗?因为根据此链接,自定义属性有助于使代码更清晰,因为您可以省略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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我不确定,但我认为,因为[ValidateModel]
是自定义属性,需要额外的空间来解释和实现,所以大多数教程都喜欢开箱即用ModelState.IsValid
.
归档时间: |
|
查看次数: |
1191 次 |
最近记录: |