ActionFilter获取API响应对象

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

如何获取ActionFilterAttribute中实际对象的值?在调试器中,我在actionExecutedContext.Result.Value中看到值。

但是,当尝试将它们实际输入为时

[actionExecutedContext.Result.ValueactionExecutedContext.Result.GetValue(),它无法识别它们。

我需要实际的对象,因此可以将其发送到我的静态数据方法之一,该方法接受输入并将所有数字乘以2。

public async Task OnActionExecutionAsync(ActionExecutingContext actionContext, ActionExecutionDelegate next)
{
   var actionExecutedContext= await next();
   // ObjectDataConverter.MultiplyIntegersBy2(test.Result.Value);
}

enter image description here

actionExecutedContext.Result.Value错误CS1061:'IActionResult'不包含'Value'的定义,并且找不到可访问的扩展方法'Value'接受类型为'IActionResult'的第一个参数(您是否缺少using指令或程序集参考?)

c# .net asp.net-core .net-core action-filter
1个回答
0
投票

您需要将actionExecutedContext.Result强制转换为ObjectResult,如果强制转换成功,则使用ObjectResult.Value:

var objResult = actionExecutedContext.Result as ObjectResult;
if (objResult != null && objResult.Value != null) {
  // process objResult.Value here
}
© www.soinside.com 2019 - 2024. All rights reserved.