从 ObjectResult 获取值

Aar*_*ron 4 c# asp.net-core

我有一个像这样的过滤器:

public class Err : ActionFilterAttribute
{
    public override void OnActionExecuted(ActionExecutedContext context)
    {
        var result = context.Result;
    }
}
Run Code Online (Sandbox Code Playgroud)

result是 的一个对象Microsoft.AspNetCore.Mvc.BadRequestObjectResult。它包含 aStatusCode和 a Value,但是当我尝试像这样提取它们时:context.Result.Value,我收到此错误:

错误 CS1061“IActionResult”不包含“Value”的定义,并且找不到接受“IActionResult”类型的第一个参数的可访问扩展方法“Value”。

Ale*_*bov 5

这很简单 - 属性Result具有类型ActionExecutedContextIActionResult而类型没有属性Value。您可以将其强制转换BadRequestObjectResult为访问Value属性:

public class Err : ActionFilterAttribute
{
    public override void OnActionExecuted(ActionExecutedContext context)
    {
        var result = context.Result as BadRequestObjectResult;
        // you can access result.Value here
    }
}
Run Code Online (Sandbox Code Playgroud)