我有一个类似的过滤器:
public class Err : ActionFilterAttribute
{
public override void OnActionExecuted(ActionExecutedContext context)
{
var result = context.Result;
}
}
result
是Microsoft.AspNetCore.Mvc.BadRequestObjectResult
的对象。它包含一个StatusCode
和一个Value
,但是当我尝试像这样提取它们:context.Result.Value
时,出现此错误:
错误CS1061'IActionResult'不包含'Value'的定义,并且找不到可以接受的扩展方法'Value'接受类型为'IActionResult'的第一个参数。
答案 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
}
}