J'ai de la difficulté avec DropDownListFor
dans mon MVC3 app. J'ai été en mesure d'utiliser StackOverflow à comprendre comment faire pour qu'ils apparaissent dans la Vue, mais maintenant je ne sais pas comment faire pour capturer les valeurs de ses propriétés correspondantes sur le Modèle de Vue quand il est soumis. Afin d'obtenir que cela fonctionne, j'ai dû créer un intérieur de classe qui avait un ID et une valeur de la propriété, puis j'ai dû utiliser un IEnumerable<Contrib>
pour satisfaire l' DropDownListFor
paramètre exigences. Maintenant, cependant, comment est-MVC FW censé correspondre la valeur sélectionnée dans cette liste déroulante de retour dans la simple chaîne de propriété sur mon modèle de vue?
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; }
}
De mon point de Vue, je place le menu déroulant sur la page comme ceci:
<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>
Quand j'envoie le formulaire, la ContribType
est (bien sûr) la valeur null.
Quelle est la bonne façon de le faire?