首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ActionFilters中访问由ModelBinders创建的对象

在ActionFilters中访问由ModelBinders创建的对象
EN

Stack Overflow用户
提问于 2009-08-25 09:28:59
回答 1查看 93关注 0票数 0

我不确定这是否可能,但我希望看到由我的ModelBinders创建的对象,而不是将它们作为参数传递给我的Action方法。

也就是说,我想注册一个FooBinder和一个BarBinder,然后在下面的方法中查看Foo

代码语言:javascript
复制
public void MyAction(Bar bar)

甚至在理想情况下是在ActionFilter中。

这个是可能的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-08-25 09:42:12

要访问它,请执行以下操作:

代码语言:javascript
复制
 public ActionResult FizzAction(object foo) // <--
    {...}

在您的过滤器中使用以下内容:

代码语言:javascript
复制
public class BarFilter : ActionFilterAttribute
{
 public override void OnActionExecuting(ActionExecutingContext filterContext)
 {
     var foo = filterContext.ActionParameters["foo"];
     //do whatever you want with it
 }
}

编辑:

对于ActionMethodSelectorAttribute,这可能会有所帮助:

代码语言:javascript
复制
 public class foo : ActionMethodSelectorAttribute
    {
        public override bool IsValidForRequest
            (ControllerContext controllerContext, MethodInfo methodInfo)
        {
            ValueProviderResult valueResult;
            controllerContext.Controller.ValueProvider  
                .TryGetValue("foo", out valueResult);
        }
    }

看看K. Scott Allen写的this blog post

没有保修-我没有用过这个-只是通过手表窗口找到的。:)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1327120

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档