/ / Seleccionar objeto de una lista desplegable - c #, asp.net-mvc, entity-framework, asp.net-mvc-4, razor

Seleccione un objeto de una lista desplegable: c #, asp.net-mvc, entity-framework, asp.net-mvc-4, razor

Tengo una vista de Razor donde estoy editando un Document objeto y estoy tratando de modificar el asociado Currency grabar. El disponible Currency se enumeran en una lista desplegable.

Tengo dos clases en EF, que se muestran a continuación.

public class Document
{
public Currency CurrencyCode { get; set; }
}

public class Currency
{
[Key]
public string CurrencyCode { get; set; }

[Column(TypeName = "Money")]
public decimal ExchangeRate { get; set; }
}

Estoy creando la lista desplegable así:

@Html.DropDownListFor(m => m.CurrencyCode.CurrencyCode, new SelectList(ViewBag.Currencies, "CurrencyCode", "CurrencyCode"), Model.LocalCurrencyCode.CurrencyCode)

Cuando publico la vista usando un botón de envío, puedo ver que el valor se publica: CurrencyCode.CurrencyCode:USD. El cuaderno de modelos hace un buen trabajo al vincular todos mis campos de datos simples (otros campos no mostrados). Pero el objeto Document.CurrencyCode se deja como nulo.

Mi plan era solo traer de vuelta el CurrencyCodevalore y luego busque la referencia de objeto real utilizando Entity Framework y asócielo. Pero ahora mismo no estoy recuperando un objeto medio lleno ...

Respuestas

1 para la respuesta № 1

Supongo que ha pasado un modelo de tipo complejo a su vista. Para obtener el valor seleccionado de DropdownList, debe indicar explícitamente a la carpeta del modelo a qué modelo desea enlazar los datos. Vea el siguiente ejemplo:

@Html.DropDownList("CurrencyCode.CurrencyCode", new SelectList(ViewBag.Currencies, "CurrencyCode", "CurrencyCode"), Model.LocalCurrencyCode.CurrencyCode)