Frage

Ich habe einen Blick, wo ich eine Namens-Konvention über meine Text-Felder verwenden, um anzuzeigen, was mit dem Inhalt getan werden sollte, sobald es zurück zu meinem Controller gebucht wird.

Das Format ähnelt:

<input type="text" name="RegistrationLine#ID" /> Updates

<input type="text" name="CreateRegistrationLine#LineNumber" /> für erstellen

Nun, da ich mit dieser Namens-Konvention, regelmäßige Modell-Bindung ist nicht möglich. Aber ich habe ein wenig über das Thema zu lesen und haben ein bisschen ein Hinweis finden, dass es möglich wäre, ein eigenes Modell Bindemittel zu schreiben, das sollte die Objekte korrekt zu Hilfe Parse und binden diese Formelemente und instanziieren können.

Bitte lesen: Bind formValue auf Eigentum verschiedener Name, ASP.NET MVC

Das ist ein bisschen ähnlich das, was ich tue, außer, ich habe die zusätzliche Komplexität der angehängten Informationen, die in dem formelement-Namen, den ich zu binden bin versucht zu.

Bin ich weg Basis hier? und wenn nicht, kann jeder von Ihnen ein paar Zeilen Code fallen zu zeigen, wie Sie diese Modell-Binder beginnen würden off ..

Wenn dies ein sehr schlechter Ansatz ist es, was ich wirklich zu erreichen versuchen, ich würde gerne Vorschläge für bessere Ansätze zu hören. Es genügt bemerken, dass ich will, was die Lage sein, beide Post zurück Updates zu tun ist, und erstellt in einem Rutsch.

War es hilfreich?

Lösung

Ich muss irgendwie mit @jfar und @omar zustimmen. Ich glaube nicht, ein eigenes Model Bindemittel ist, wo Sie in diesem Fall sein sollen.

Sie können eine komplexe Art zu Ihrer Ansicht passieren und einfach den vollständigen Stopp verwenden wie @jfar erwähnt.

id="Model.Person.Name.FirstName" wird auf ein Objekt mit dem Namen Person glücklich binden, die eine Klasse hat in seinem Namen genannt, das eine Eigenschaft namens Vornamen.

Wenn Sie nun einige spezielle Überprüfungen der Daten tun möchten, können Sie eine partielle Klasse implementieren, die die Validierungen usw. und füllen Sie die Model Fehler machen würde.

public partial class Name
{
  public void Validate(){ }
  public int CreateRegistrationLine(){ }
  public bool DoSpecialActions(){ }
}

Es ist ein wenig unklar, was Ihre speziellen Aktionen tun dies mein Beispiel oben kann nicht sein, was Sie wollen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top