![]() |
含蓄的机器猫 · 古墓丽影:崛起 爬上山顶_单机游戏热门视频· 4 天前 · |
![]() |
文雅的海龟 · 2019年1月8日外交部发言人陆慷主持例行记者会· 3 月前 · |
![]() |
热心肠的钱包 · 有没有抖音最近很火的猫猫表情包?· 1 年前 · |
![]() |
坏坏的拐杖 · 至高位面 漫画 - 抖音· 1 年前 · |
![]() |
不拘小节的排球 · 梦回2014年:5年前的旗舰手机到底有多强 ...· 1 年前 · |
使用.NET Core2.0 WebApi。
我有一个webapi,它有许多端点,每个端点在失败时处理和抛出BadRequest。详情如下:
if(data == null)
return BadRequest("Data must not be blank.");
}
现在,由于这些状态代码在我的api中是重复的,我正在考虑创建一个Helper方法,该方法将BadRequest返回到我的API。
所以我创建了一个静态助手类。但这里的问题是,BadRequest是ControllerBase的一部分,在我的助手类中不可用。创建此方法返回BadRequest的最佳方法是什么。
-更新
我想要这样的东西:
public static BadRequest GetBadRequestMessage(string message)
return BadRequest(message);
}
我也曾尝试过:
public static BadRequestResult GetBadRequestMessage(string message)
return new BadRequestResult(message);
}
但这会导致错误:严重程度代码描述项目文件行抑制状态错误CS1729 'BadRequestResult‘不包含带有1个参数的构造函数
发布于 2018-08-31 17:34:18
您可以手动初始化操作结果。
return new BadRequestObjectResult("error message here");
这基本上就是
ControllerBase
内部所做的。
/// <summary>
/// Creates an <see cref="BadRequestResult"/> that produces a <see cref="StatusCodes.Status400BadRequest"/> response.
/// </summary>
/// <returns>The created <see cref="BadRequestResult"/> for the response.</returns>
[NonAction]
public virtual BadRequestResult BadRequest()
=> new BadRequestResult();
/// <summary>
/// Creates an <see cref="BadRequestObjectResult"/> that produces a <see cref="StatusCodes.Status400BadRequest"/> response.
/// </summary>
/// <param name="error">An error object to be returned to the client.</param>
/// <returns>The created <see cref="BadRequestObjectResult"/> for the response.</returns>
[NonAction]
public virtual BadRequestObjectResult BadRequest(object error)
=> new BadRequestObjectResult(error);
/// <summary>
/// Creates an <see cref="BadRequestObjectResult"/> that produces a <see cref="StatusCodes.Status400BadRequest"/> response.
/// </summary>
/// <param name="modelState">The <see cref="ModelStateDictionary" /> containing errors to be returned to the client.</param>
/// <returns>The created <see cref="BadRequestObjectResult"/> for the response.</returns>
[NonAction]
public virtual BadRequestObjectResult BadRequest(ModelStateDictionary modelState)
if (modelState == null)
throw new ArgumentNullException(nameof(modelState));
return new BadRequestObjectResult(modelState);
}
发布于 2021-08-20 13:40:59
在 BadRequestConfig 核心5项目中,在ioc文件夹/类库中创建.net类:
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.DependencyInjection;
using System.Linq;
namespace Ioc
public static class BadRequestConfig
// error 400 handling - remove extra fields in error model - remove if(ModelState.IsValid)
public static IMvcBuilder AddBadRequestServices(this IMvcBuilder services)
services.ConfigureApiBehaviorOptions(options =>
options.InvalidModelStateResponseFactory = actionContext =>
var modelState = actionContext.ModelState.Values;
var allErrors = actionContext.ModelState.Values.SelectMany(v => v.Errors);
return new BadRequestObjectResult(new
StatusCode = 400,
Message = string.Join(" - ", allErrors.Select(e => e.ErrorMessage))
return services;
}
然后在 AddBadRequestServices() 文件中的ConfigureServices方法中添加startup.cs方法:
public void ConfigureServices(IServiceCollection services)
![]() |
含蓄的机器猫 · 古墓丽影:崛起 爬上山顶_单机游戏热门视频 4 天前 |
![]() |
文雅的海龟 · 2019年1月8日外交部发言人陆慷主持例行记者会 3 月前 |
![]() |
热心肠的钱包 · 有没有抖音最近很火的猫猫表情包? 1 年前 |
![]() |
坏坏的拐杖 · 至高位面 漫画 - 抖音 1 年前 |