2009-06-30 7 views
0

Mit dem Standard-Modelbinder und sein Attribut binden wir ein Präfix wie folgt einstellen:ASP.net und CustomModelBinder und ein Präfix

public ActionResult Save([Bind(Prefix="test")] Person p)) { 

} 

Ich habe eine CustomModelBinderAttribute, die eine maßgeschneiderte Modelbinder zurück:

public ActionResult Save([PersonBinderAttribute(Prefix="test2")] Person p)) { 

} 

Wie kann ich auf den Wert von Prefix in meinem maßgeschneiderten Modellbinder zugreifen?

Antwort

-1

Ich glaube nicht, dass Sie können. Ich würde das Präfix als eine Konstante an der Spitze des Controllers deklarieren und einfach verwenden.

private const string c_prefix = "test2"; 
public ActionResult Save([PersonBinderAttribute(Prefix=c_prefix)] Person p)) { 
    var prefix = c_prefix; 
} 

Es ist mein Verständnis, dass alles, was Sie im Attribute deklarieren kann nur durch das Attribut verwendet werden.

+0

Ich kann auf den Wert in der Steuerung zugreifen! Es war in der Modelbinder, mit dem ich rumgestochert war. Es ist jedoch ziemlich einfach zu implementieren - fügen Sie einfach eine Präfixeigenschaft zu PersonBinderAttribute hinzu und übergeben Sie dann den Wert an den Modelbinder, wie er erstellt wurde - aber ich hatte gehofft, dass das Framework nativ Prefix-Annotationen für Kundenbinder unterstützt. Es scheint nicht zu sein. – iasksillyquestions

+0

Ich sehe, woher du kommst. Ich habe gestern mit ActionFilterAttribute etwas ähnliches gemacht, aber die Verbindung mit Ihrer Frage nicht hergestellt. – kim3er