Ich habe Probleme mit DropDownListFor
meiner MVC3-App. Ich konnte StackOverflow verwenden, um herauszufinden, wie sie in der Ansicht angezeigt werden können, aber jetzt weiß ich nicht, wie die Werte in den entsprechenden Eigenschaften des Ansichtsmodells erfasst werden sollen, wenn sie gesendet werden. Damit dies funktioniert, musste ich eine innere Klasse erstellen, die eine ID und eine Werteigenschaft hatte, und dann eine verwenden IEnumerable<Contrib>
, um die DropDownListFor
Parameteranforderungen zu erfüllen. Wie soll MVC FW nun den in dieser Dropdown-Liste ausgewählten Wert wieder der einfachen Zeichenfolgeeigenschaft in meinem Ansichtsmodell zuordnen?
public class MyViewModelClass
{
public class Contrib
{
public int ContribId { get; set; }
public string Value { get; set; }
}
public IEnumerable<Contrib> ContribTypeOptions =
new List<Contrib>
{
new Contrib {ContribId = 0, Value = "Payroll Deduction"},
new Contrib {ContribId = 1, Value = "Bill Me"}
};
[DisplayName("Contribution Type")]
public string ContribType { get; set; }
}
In meiner Ansicht platziere ich das Dropdown-Menü wie folgt auf der Seite:
<div class="editor-label">
@Html.LabelFor(m => m.ContribType)
</div>
<div class="editor-field">
@Html.DropDownListFor(m => m.ContribTypeOptions.First().ContribId,
new SelectList(Model.ContribTypeOptions, "ContribId", "Value"))
</div>
Wenn ich das Formular abschicke, ContribType
ist das (natürlich) null.
Was ist der richtige Weg, um dies zu tun?