Tengo problemas con DropDownListFor
mi aplicación MVC3. Pude usar StackOverflow para descubrir cómo hacer que aparezcan en la Vista, pero ahora no sé cómo capturar los valores en sus propiedades correspondientes en el Modelo de Vista cuando se envía. Para que esto funcione, tuve que crear una clase interna que tuviera una ID y una propiedad de valor, luego tuve que usar una IEnumerable<Contrib>
para satisfacer los requisitos del DropDownListFor
parámetro. Ahora, sin embargo, ¿cómo se supone que MVC FW mapeará el valor seleccionado en este menú desplegable de nuevo en la propiedad de cadena simple en mi modelo de vista?
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; }
}
En mi Vista coloco el menú desplegable en la página así:
<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>
Cuando envío el formulario, el ContribType
es (por supuesto) nulo.
¿Cuál es la forma correcta de hacer esto?