分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 代码编程

Validate Model State automatically in ASP.NET Core 2.0

发布时间:2023-09-06 01:42责任编辑:傅花花关键词:.NET
if (!ModelState.IsValid){ ???//TODO 模型验证失败需要做的事情}

上面的代码不管是在传统的ASP.NET还是新一代ASP.NET Core中都是为了验证模型的状态是否合法,如果IsValid属性的值为True,则验证成功。这样的代码一般我们会写在Action方法中的最开始处,如果在每个Action中都写这样的判断就会增加我们的工作量和以及存在重复性,在这篇文章中将讨论如何自动进行模型验证。

要实现这个功能首先需要定义一个ActionFilter

public class ValidateModelStateAttribute : Microsoft.AspNetCore.Mvc.Filters.ActionFilterAttribute{ ???public override void OnActionExecuting(ActionExecutingContext context) ???{ ???????if (!context.ModelState.IsValid) ???????{ ???????????List<string> errorList = new List<string>(); ???????????foreach (var modelState in context.ModelState.Values) ???????????{ ???????????????foreach (var error in modelState.Errors) ???????????????{ ???????????????????errorList.Add(error.ErrorMessage); ???????????????} ???????????} ???????????context.Result = new JsonResult(new { success = false, message = errorList }); ???????} ???}}

修改启动类

public void ConfigureServices(IServiceCollection services){ ???services.AddMvc(options => ???{ ???????options.Filters.Add(typeof(ValidateModelStateAttribute)); ???});}

自动进行模型验证就实现了。走个实验:

public class User{ ???[Required] ???[EmailAddress] ???public string Email { get; set; } ???[Required] ???public string Name { get; set; }}
[HttpPost]public IActionResult Insert(User user){ ???return Json(user);}

是不是有点AOP的意思呢?

原文地址:http://www.talkingdotnet.com/validate-model-state-automatically-asp-net-core-2-0/

Validate Model State automatically in ASP.NET Core 2.0

原文地址:https://www.cnblogs.com/bidianqing/p/8447322.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved