Frage

Beschreibung:

ich eine Zahlung Seite, die für die Eingabe von Kontoinformationen ein Formular enthält. Ich habe die Bankkontoinformationen in einem Modell / Editor Schablone gekapselt. Die Seite selbst hat seine eigene Ansicht Modell, das eine Eigenschaft Bankkonto enthalten geschieht in an den Editor übergeben werden.

[[Ansicht Modelle]]

public class PaymentPageModel { 
    public SomeProperty1 { get; set; }
    public SomeProperty2 { get; set; }
    public BankAccount BankAccount { get; set; }
    ...
}

public class BankAccount { 
    public int BankAccountTypeID { get; set; }
    public string BankName { get; set; }
    public string ABACode { get; set; }
    public string AccountNumber { get; set;}
    public IEnumerable<SelectListItem> BankAccountTypes {
        get { ... // Constructs the list }
    }
}

[[Zahlung Seite HTML]]

<% using (Html.BeginForm()) { %>
<%: Html.EditorFor(m => m.BankAccount) %>
    ... // Other miscellaneous stuff not related to the actual BankAccount
<% } %>

[[Editor Template]

...
<%: Html.DropDownListFor(m => m.BankAccountTypeID, Model.BankAccountTypes) %>
...

Problem

Am Anfang dieser perfekt gearbeitet, als ich die Zahlung Seite direkt an das Bankkonto-Modell stark eingeben. Die Dropdown-Liste wurde richtig aufgefüllt, und der korrekte Wert aus dem Modell ausgewählt wurde.

ich die Seite kürzlich geändert, um es in dem PaymentPageModel stark eingeben, die das Bankaccount-Modell als eine Eigenschaft enthält. Der HTML-Code wird nicht geändert. Das Ergebnis ist nun, dass alle HTML-Werte im Editor Template richtig bevölkert werden, mit Ausnahme des Dropdownlist. Es bindet die Liste der Werte in geeigneter Weise aus dem BankAccountTypes Liste auswählen, aber der ausgewählte Wert nicht gebunden ist, zu werden. Ich habe überprüft, um sicherzustellen, dass der Wert, den es angeblich werden Bindung richtig eingestellt ist, indem sie es direkt neben den Dropdownlist ausgegeben wird.

Das treibt mich verrückt, und macht mir wirklich die Zuverlässigkeit des Modells in Frage Bindung und HTML-Helfer im Allgemeinen, vor allem, wenn mir nicht auf komplexe Ansicht Modelle mit Editor Vorlagen einzukapseln Präsentation / Funktionalität.

sind Irgendwelche Vorschläge sehr geschätzt.

War es hilfreich?

Lösung

Wenn Sie stark die Editor Vorlage PaymentPageModel in der Hauptansicht eingegeben haben statt:

<%: Html.EditorFor(m => m.BankAccount) %>

Sie könnten versuchen:

<%: Html.EditorForModel() %>

und im Editor-Vorlage:

<%: Html.DropDownListFor(m => m.BankAccount.BankAccountTypeID, 
    Model.BankAccount.BankAccountTypes) %>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top