代码之家  ›  专栏  ›  技术社区  ›  Felipe Lima

如何将复杂对象绑定到ActionFilterAttribute ActionParameters?

  •  1
  • Felipe Lima  · 技术社区  · 14 年前

    我的问题很简单:我有一个定制的ActionFilterAttribute,它看起来像这样(为了可读性而简化):

    public class DynamicModuleActionAttribute : ActionFilterAttribute {
        public override void OnActionExecuting(ActionExecutingContext filterContext) {
            filterContext.ActionParameters["module"] = new MyObject();
            base.OnActionExecuting(filterContext);
        }
    }
    

    然后,我的控制器操作应该如下所示:

    [DynamicModuleAction]
    public ActionResult Edit(Module module) {
        // do some logic here
        return View();
    }
    

    有了这个密码,我得到了一个 ArgumentNullException DefaultModelBinder .
    我当然可以收到 object 然后将其转换为 Module ,但是,很明显,我是想避免这种变通办法。

    有什么线索吗?
    谢谢大家!

    0 回复  |  直到 14 年前