BadRequestResult 和 BadRequestObjectResult 之间的区别

问题描述 投票:0回答:2

我将在我的操作过滤器中返回错误的请求结果。

我有两个选择:

context.result = new BadRequestResult();

context.result = new BadRequestObjectResult();

似乎所有状态代码都有几种类型:

NotFoundResult
-
NotFoundObjectResult
等等。

我应该使用哪一种?这几种类型有什么区别?

c# asp.net-core asp.net-core-mvc asp.net-core-3.1
2个回答
11
投票

两者的目的相似,但第二个 (

BadRequestObjectResult
) 有所不同,
object
ModelStateDictionary
可以作为构造函数参数传递,其中包含有关错误的详细信息。

查看下面链接中的构造函数。

https://learn.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.mvc.badrequestobjectresult?view=aspnetcore-3.1


0
投票

除了额外的构造函数之外,唯一的区别是

BadRequestObjectResult
在其构造函数中将状态代码设置为 400。

var badRequestObjectResult = new BadRequestObjectResult((object?)null);
var objectResult = new ObjectResult(null);
Console.WriteLine(badRequestObjectResult.StatusCode);
Console.WriteLine(objectResult.StatusCode ?? -1);

输出是

400
-1
© www.soinside.com 2019 - 2024. All rights reserved.