En mi proyecto actual, me enfrenté a este problema y no pude encontrar una manera rápida de andamiar la lista desplegable de una relación uno-muchos dentro de una de mis Entidades.
Lo que terminé haciendo fue similar a la siguiente:
1- Crear el AddView normales => Crea manera.
2- Si tuviera una propiedad ID en mi clase de modelo, el defaul; t plantilla generará algo como esto para representar esta propiedad en mi opinión:
<div class="editor-label">
@Html.LabelFor(model => model.CityID)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.CityID)
@Html.ValidationMessageFor(model => model.CityID)
</div>
3- Ahora tengo que sustituir este plantilla por defecto con uno que funciona, así que escribí este código en el CREATE
método:
IEnumerable<SelectListItem> cityItems = dataContext.Cities.AsEnumerable().Select(c => new SelectListItem()
{
Text = c.Name,
Value = c.ID.ToString(),
Selected = false,
});
SelectList cityList = new SelectList(cityItems, "Value", "Text");
ViewBag.CityList = cityList;
que esto obtendrá la mesa de las ciudades y crear un selectlist que me puede pasar a mi modo de ver y trabajar con él para proporcionar la DrobDown con son artículos.
4- reemplace el código predeterminado en mi opinión, a una como la siguiente:
<div class="Post-label">
<div class="editor-label">
@Html.LabelFor(model => model.CityID)
</div>
<div class="editor-field">
@Html.DropDownListFor(m => m.CityID, ViewData["CityList"] as SelectList)
@Html.ValidationMessageFor(model => model.CityID)
</div>
</div>
La razón por la que he utilizado en lugar de ViewData["CityList"]
ViewBag.CityList
es que éste funcionó, pero el otro no.
5- Ahora mi vista funciona y busco los datos de City
tal como esperaba, y utilizando el mismo modelo dentro de mi vista Edit
también funcionó.
Pruébelo y avíseme qué sucedió, gracias.
gracias por la respuesta. Sé cómo codificarlo a mano, solo estoy tratando de descubrir por qué el andamio automático no funciona para este escenario – ChrisCa