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中看到这些数据。如何从上面代码中的变量动态val 中提取数据?!
当我使用断点浏览时,这是流程
答案 0 :(得分:0)
从我的控制器,如果我传递这样的数据
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],否则您必须面对null引用错误! 我赞赏其他更好的答案!?