从基于 ActionFilterAttribute 的 ViewBag 中提取数据

Extract the data from ViewBag at base ActionFilterAttribute

public class GeneralFilter : ActionFilterAttribute
{
    public override void OnActionExecuted(ActionExecutedContext filterContext)
    {
        dynamic val = filterContext.Controller.ViewBag;
        string action = filterContext.ActionDescriptor.ActionName;
        string controller = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName;
    }
}

在上面的代码中,我通过 viewbag 传递来自控制器操作的数据。我能够在上面提到的变量 val 中看到这些数据。如何从上面代码中的变量 dynamic val 中提取数据?!

当我使用断点浏览时,这就是流程

从我的控制器,如果我像这样传递数据

var Numbers = new List<int> { 1, 2, 3 };

ViewBag.numbers = Numbers;

然后我可以像这样从 CustomfilterAttribute 获取数据

foreach (var number in filterContext.Controller.ViewBag.numbers)

{ var i = number; }

注意:为此,您只需要为传递 ViewBag.numbers 数据的方法分配 [GeneralFilter],否则您将面临空引用错误! 我感谢其他更好的答案!?