2009-04-03 2 views
0

Ich benutze einen O/R-Mapper, der Objekte aus der DB in generischer Weise neu laden kann. Ich möchte in der Lage sein, die Anforderung direkt nach die Erstellung der zugeordneten Objekte abzufangen, um sie neu zu laden.Abfangen von Aktionsmethoden einer MVC-Steuerung

ActionFilter sind natürlich da, aber das Problem ist, dass ActionFilters (oder die Beispiele, die ich gesehen habe) mit den Daten umgehen kann, wie vom Formular zur Verfügung gestellt und nicht nachdem ein Objekt erstellt wurde.

Ich schaute auf die übersteuerbaren Methoden des Controllers, fand aber nichts Offensichtliches, das meine Augen auffing. Kennt jemand einen Weg, dies zu tun?

Vielen Dank für Ihre Vorschläge!

Nasser

Antwort

0

Was Sie brauchen, ist ein eigenes Model Bindemittel. Sie können von der standardmäßigen ModelBinder-Klasse erben und die gewünschte Logik bereitstellen.

Zum Beispiel, wenn Sie diese haben:

public ActionResult Save([Bind(typeof(CustomModelBinder))] Customer customer) 
{ 
    /* ... */ 
} 

Das Modell Bindemittel wird das Objekt für Sie erstellen, aber Sie können es aus der Datenbank holen wählen zuerst (für bestehende Datensätze).

+0

Lieber Ben! Vielen Dank für Ihre Antwort! Ich habe den Code für den Modelbinder gefunden, der mit dem von mir verwendeten O/R Mapper kommt, also muss ich jetzt versuchen, das Reload innerhalb des Modelbinders auszuarbeiten! Vielen Dank für Ihre Antwort! Nasser – Nasser

0

Wenn ich richtig verstehe, brauchen Sie so etwas.

public class Navigate : ActionFilterAttribute, IActionFilter 
{ 
    void IActionFilter.OnActionExecuted(ActionExecutedContext filterContext) 
    { 
     ViewResult view = filterContext.Result as ViewResult; 

    } 
} 

Im Hinblick finden Sie view.ViewData.Model finden, die zum Stromregler gehört und Sie können mit dem alles, was Sie wollen, tun Daten abgebildet. Lassen Sie mich wissen, ob ich richtig war :)

+0

Liebe Omoto! danke für Ihre Antwort. Sie antworten Angebote mit dem Ergebnis nach der Aktion. Ich bin eigentlich daran interessiert, die gemappten Objekte zu erreichen, bevor die Aktion getroffen wird. Grüße Nasser – Nasser