2009-12-25 6 views
13

Wenn Sie über einen modellgebundenen Parameter in einer Aktionsmethode verfügen, wie können Sie in einem Aktionsfilter zu diesem Parameter gelangen?ASP.NET MVC ActionFilter-Parameterbindung

Gibt es trotzdem, um myCar zu erhalten, ohne die Form-Variablen zu durchlaufen?

+0

Hier ist ein großer Artikel erklärt, wie ActionParameters für die Autorisierung für den Zugriff auf: http://www.joe-stevens.com/2010/ 08/19/asp-net-mvc-authorize-attribut-using-action-parameters-mit-dem-actionfilterattribute/ –

Antwort

11

Nicht sicher OnActionExecuted aber man kann es in OnActionExecuting tun:

public class MyActionFilterAttribute : ActionFilterAttribute 
{ 
    public override void OnActionExecuting(ActionExecutingContext filterContext) 
    { 
     // I want to access myCar here 

     if(filterContext.ActionParameters.ContainsKey("myCar")) 
     { 
      var myCar = filterContext.ActionParameters["myCar"] as Car; 

      if(myCar != null) 
      { 
       // You can access myCar here 
      } 
     } 
    } 
} 
+1

Ich glaube nicht, dass Sie ActionFilter dort verwenden können, es ist ActionFilterAttribute. Wo haben Sie auch die ActionParameters-Eigenschaft für ActionExecutedContext erhalten? –

+0

Danke, es ist ActionFilterAttribute - Sie haben Recht. Ich habe nicht bemerkt, dass es sich um OnActionExecuted handelt. –

+0

Danke Jungs. Bearbeitete meine ursprüngliche Frage, um ActionFilterAttribute anzugeben. – Shlomo