从基于 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 中提取数据?!
当我使用断点浏览时,这就是流程
- 价值{System.Web.Mvc.DynamicViewDataDictionary}
- 查看数据{System.Web.Mvc.ViewDataDictionary}
- _innerDictionary 计数 = 1
- [0] => 我需要的数据在这里 <=
或
- 值计数 = 1
- [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],否则您将面临空引用错误!
我感谢其他更好的答案!?
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 中提取数据?!
当我使用断点浏览时,这就是流程
- 价值{System.Web.Mvc.DynamicViewDataDictionary}
- 查看数据{System.Web.Mvc.ViewDataDictionary}
- _innerDictionary 计数 = 1
- [0] => 我需要的数据在这里 <= 或
- 值计数 = 1
- [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],否则您将面临空引用错误! 我感谢其他更好的答案!?