我不确定这是否可能,但我希望看到由我的ModelBinders创建的对象,而不是将它们作为参数传递给我的Action方法。
也就是说,我想注册一个FooBinder和一个BarBinder,然后在下面的方法中查看Foo
public void MyAction(Bar bar)甚至在理想情况下是在ActionFilter中。
这个是可能的吗?
发布于 2009-08-25 09:42:12
要访问它,请执行以下操作:
public ActionResult FizzAction(object foo) // <--
{...}在您的过滤器中使用以下内容:
public class BarFilter : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
var foo = filterContext.ActionParameters["foo"];
//do whatever you want with it
}
}编辑:
对于ActionMethodSelectorAttribute,这可能会有所帮助:
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。
没有保修-我没有用过这个-只是通过手表窗口找到的。:)
https://stackoverflow.com/questions/1327120
复制相似问题