从ObjectResult获取价值

时间:2018-09-25 16:00:27

标签: c# asp.net-core

我有一个类似的过滤器:

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

resultMicrosoft.AspNetCore.Mvc.BadRequestObjectResult的对象。它包含一个StatusCode和一个Value,但是当我尝试像这样提取它们:context.Result.Value时,出现此错误:

  

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

1 个答案:

答案 0 :(得分:3)

那很简单-Result的属性ActionExecutedContext具有IActionResult类型,而没有属性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
    }
}