Ist es möglich, eine Fremdschlüsselbeziehung in meinem Modell an eine Formulareingabe zu binden?Asp.net-MVC-Modell-Bindungs-Fremdschlüssel-Beziehung
Angenommen, ich habe eine Eins-zu-viele-Beziehung zwischen Car
und Manufacturer
. Ich möchte ein Formular für die Aktualisierung Car
haben, das einen Auswahleingang für die Einstellung Manufacturer
enthält. Ich hatte gehofft, dass ich das mit der eingebauten Modellbindung machen kann, aber ich fange an zu denken, dass ich es selbst machen muss.
Meine Aktion Methode Signatur sieht wie folgt aus:
public JsonResult Save(int id, [Bind(Include="Name, Description, Manufacturer")]Car car)
Die Form bucht die Werte Name, Beschreibung und Hersteller, wo Hersteller int
ein Primärschlüssel-Typ ist. Name und Beschreibung werden richtig gesetzt, aber nicht Hersteller, was sinnvoll ist, da der Modellbinder keine Ahnung hat, was das PK-Feld ist. Heißt das, ich müsste eine benutzerdefinierte schreiben, dass es davon bewusst ist? Ich bin nicht sicher, wie das funktionieren würde, da meine Datenzugriffsrepositorys durch einen IoC-Container auf jedem Controller
-Konstruktor geladen werden.
Sehr hilfreiches Beispiel! Eine Idee, die ich vorschlagen kann, ist jedoch die Verwendung der IModelBinderProvider-Schnittstelle, um dieses Modellbinder für Ihre Modelltypen anzusprechen, anstatt innerhalb des Binders zu überprüfen. Brad Wilson schrieb darüber [http://bradwilson.typepad.com/blog/2010/10/service-location-pt9-model-binders.html]. –
Ja, das wäre großartig. Ich habe jedoch noch nicht auf MVC3 aktualisiert. –