当前位置: 首页 > news >正文

wordpress双语站wordpress logo

wordpress双语站,wordpress logo,关于网页设计的教育网站设计,网站建设服务器和空间费这个代码片段定义了一个自定义的 ASP.NET Core 过滤器#xff08;GuardModelStateAttribute#xff09;#xff0c;用于在控制器动作执行之前验证模型状态#xff08;ModelState#xff09;。如果模型状态无效#xff0c;则构造一个 ProblemDetails 对象来描述错误#…这个代码片段定义了一个自定义的 ASP.NET Core 过滤器GuardModelStateAttribute用于在控制器动作执行之前验证模型状态ModelState。如果模型状态无效则构造一个 ProblemDetails 对象来描述错误并返回一个 BadRequest 响应。 代码片段 /// summary /// 验证 ModelState 是否有效 /// /summary public class GuardModelStateAttribute : ActionFilterAttribute {// summary/// 在执行操作之前进行验证。/// 如果模型状态无效则返回 BadRequest 响应。/// /summary/// param namecontextAction 执行上下文/parampublic override void OnActionExecuting(ActionExecutingContext context){// 验证 ModelState 是否有效if (!context.ModelState.IsValid){// 构造 ProblemDetails 对象来构建错误响应var problemDetails new ProblemDetails{Title Bad Request, // 错误标题Detail 参数验证失败请检查输入参数, // 错误详情Status (int)HttpStatusCode.BadRequest, // HTTP 状态码Instance context.HttpContext.Request.Path, // 请求路径};// 遍历 ModelState 字典将错误信息添加到 Extensions 字典中foreach (var key in context.ModelState.Keys){// 获取每个键对应的错误信息var errors context.ModelState[key]?.Errors;// 如果没有错误信息则跳过if (errors is not { Count: 0 }) continue;// 遍历每个错误并将其添加到 ProblemDetails 的 Extensions 字典中foreach (var error in errors){problemDetails.Extensions.Add(key, error.ErrorMessage);}}// 设置响应结果context.Result new BadRequestObjectResult(problemDetails);}} }代码解读 类定义 public class GuardModelStateAttribute : ActionFilterAttributeGuardModelStateAttribute 继承自 ActionFilterAttribute这是一个内置的过滤器接口用于在执行控制器动作前后执行一些逻辑。 覆盖 OnActionExecuting 方法 public override void OnActionExecuting(ActionExecutingContext context)OnActionExecuting 方法是在控制器动作执行之前调用的。覆盖这个方法可以让我们在动作执行前做一些预处理工作。 验证模型状态 if (!context.ModelState.IsValid)ModelState.IsValid 是一个布尔属性表示模型状态是否有效。如果为 false表示模型状态无效即请求中的数据未通过验证。 构造 ProblemDetails 对象 var problemDetails new ProblemDetails {Title Bad Request,Detail 参数验证失败请检查输入参数,Status (int)HttpStatusCode.BadRequest,Instance context.HttpContext.Request.Path, };ProblemDetails 是一个标准的对象用于描述 HTTP 错误响应。这里设置了错误标题、详细信息、HTTP 状态码400 Bad Request以及请求的路径。 收集并附加错误信息 foreach (var key in context.ModelState.Keys) {var errors context.ModelState[key]?.Errors;if (errors is not { Count: 0 }) continue;foreach (var error in errors){problemDetails.Extensions.Add(key, error.ErrorMessage);} }遍历 ModelState 中的所有键值对获取每个字段的验证错误信息并将这些错误信息添加到 ProblemDetails 的 Extensions 字典中。 设置响应结果 context.Result new BadRequestObjectResult(problemDetails);设置 ActionExecutingContext 的 Result 属性返回一个包含 ProblemDetails 的 BadRequestObjectResult这将导致控制器不再继续执行并返回一个带有错误信息的 HTTP 响应。 作用 这个自定义过滤器的作用是 验证模型状态在控制器动作执行之前验证请求中的数据是否满足验证规则。返回错误响应如果数据验证失败则构造一个包含详细错误信息的 ProblemDetails 对象并返回一个 BadRequest 响应。简化错误处理通过在过滤器中集中处理模型状态验证可以减少在每个控制器动作中重复编写类似的错误处理逻辑。 使用方法 // Add services to the container. #region 向容器中添加服务// 关闭默认模型验证过滤器 builder.Services.ConfigureApiBehaviorOptions(options options.SuppressModelStateInvalidFilter true);builder.Services.AddControllers(options {// 添加过滤器options.Filters.AddGuardModelStateAttribute(); }) .AddNewtonsoftJson(options {options.SerializerSettings.DateFormatString yyyy-MM-dd HH:mm:ss; //格式化时间 });#endregion要在控制器中使用这个过滤器可以在控制器或动作方法上添加 [GuardModelState] 属性 [ApiController] [Route([controller])] [GuardModelState] // 在控制器级别应用过滤器 public class MyController : ControllerBase {[HttpGet({id})]public ActionResult Get(int id){// 控制器逻辑return Ok();}[HttpPost][GuardModelState] // 在动作方法级别应用过滤器public ActionResult Post([FromBody] MyModel model){// 控制器逻辑return Ok();} }总结 GuardModelStateAttribute 是一个自定义的 ASP.NET Core 过滤器用于在控制器动作执行前验证模型状态并在模型状态无效时返回一个带有详细错误信息的 BadRequest 响应。通过使用这个过滤器可以简化错误处理逻辑并提高代码的可维护性和可读性。
http://www.w-s-a.com/news/806562/

相关文章:

  • 网站设计制作售价多少钱制作图片的软件是
  • 网站验证码目录简单带数据库的网站模版
  • 制作网站用c#做前台网站建设专题的意义
  • 广西建设职业技术学院教育网站牡丹区建设局网站
  • 网站后台怎么用ftp打开上海外贸进出口有限公司
  • 淘宝建设网站的意义大学生做那个视频网站
  • 如何提高你的网站的粘性建设银行流水网站
  • 微信h5在哪个网站做泰州专业网站制作公司
  • 现在.net做网站的多吗建设工程造价网
  • pc访问手机网站跳转违法网站开发人员
  • 网站前端做报名框wordpress 启动慢
  • 沈阳做网站客户多吗前端可以做网站吗
  • 网站设计规划书新媒体营销策略分析
  • dw个人网站主页怎么做天津工程信息建设网
  • 顺义做网站的公司网站页面设计基础教程
  • 安阳哪个公司做网站好企业没有做网站有的坏处
  • 网站开发有必要用php框架wordpress分页导航代码
  • wordpress建站seo鞍山制作网站哪家好
  • 网站空间流量查询上海门户网站制作
  • 网站开发技术是什么专业会的加强普法网站和普法网络集群建设
  • 上海建筑网站seo 推广
  • 乌兰察布做网站公司爱站网关键词挖掘工具站长工具
  • 白银网站建设白银申请网站空间怎么做
  • 免费炫酷网站模板网站建设需要用到什么软件有哪些
  • 电商网站开发 文献综述大型网站建设企业
  • 如何在建设部网站补录项目单仁牛商
  • 社保网站上做减员一直不审核软件程序开发
  • 网站友情链接购买天元建设集团有限公司资质
  • 南山商城网站建设哪家技术好株洲seo网站优化软件
  • 服务类网站建设18款禁用网站app直播