使用.NET Core 2.0 WebApi。
我有一个web api,它有许多端点,每个端点都在处理并在失败时抛出Bad Request。如下:
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个参数的构造函数
您可以手动初始化操作结果
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);
}