Доступ к объектам, созданным ModelBinder в ActionFilters - PullRequest
0 голосов
/ 25 августа 2009

Я не уверен, возможно ли это, но я хочу видеть объекты, созданные моими ModelBinder, помимо передачи их в качестве параметров моим методам Action.

т.е. Я хочу зарегистрировать FooBinder и BarBinder, а затем посмотреть на Foo следующим способом

public void MyAction(Bar bar)

или даже идеально в ActionFilter.

Возможно ли это?

1 Ответ

2 голосов
/ 25 августа 2009

Чтобы получить доступ к этому:

 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
 }
}

EDIT:

Для ActionMethodSelectorAttribute это может помочь:

 public class foo : ActionMethodSelectorAttribute
    {
        public override bool IsValidForRequest
            (ControllerContext controllerContext, MethodInfo methodInfo)
        {
            ValueProviderResult valueResult;
            controllerContext.Controller.ValueProvider  
                .TryGetValue("foo", out valueResult);
        }
    }

Проверьте это сообщение в блоге К. Скоттом Алленом.

Никаких гарантий - не использовал это сам - нашел через окно с часами. :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...