selectlistitem mvc llenar example ejemplos dropdownlist desde datos c# asp.net-mvc-3 html.dropdownlistfor

c# - llenar - MVC3 DropDownListFor-¿un simple ejemplo?



selectlist mvc (4)

Creo que esto ayudará: en Controller obtener los elementos de la lista y el valor seleccionado

public ActionResult Edit(int id) { ItemsStore item = itemStoreRepository.FindById(id); ViewBag.CategoryId = new SelectList(categoryRepository.Query().Get(), "Id", "Name",item.CategoryId); // ViewBag to pass values to View and SelectList //(get list of items,valuefield,textfield,selectedValue) return View(item); }

y en la vista

@Html.DropDownList("CategoryId",String.Empty)

Tengo problemas con DropDownListFor en mi aplicación MVC3. Pude usar StackOverflow para averiguar 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 visualización 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 un IEnumerable<Contrib> para satisfacer los requisitos del parámetro DropDownListFor . Ahora, sin embargo, ¿cómo se supone que MVC FW correlaciona el valor que se selecciona en este menú desplegable nuevamente con 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 de esta manera:

<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?


Deberías hacer así:

@Html.DropDownListFor(m => m.ContribType, new SelectList(Model.ContribTypeOptions, "ContribId", "Value"))

Dónde:

m => m.ContribType

es una propiedad donde el valor del resultado será.


Para vincular datos dinámicos en DropDownList, puede hacer lo siguiente:

Crear ViewBag en Controller como a continuación

ViewBag.ContribTypeOptions = yourFunctionValue();

ahora use este valor en vista como a continuación:

@Html.DropDownListFor(m => m.ContribType, new SelectList(@ViewBag.ContribTypeOptions, "ContribId", "Value", Model.ContribTypeOptions.First().ContribId), "Select, please")


@Html.DropDownListFor(m => m.SelectedValue,Your List,"ID","Values")

Aquí Value es ese objeto de modelo en el que desea guardar su valor seleccionado