Sospecho que esto es simple y me lo estoy perdiendo.MVC 3 - muestra el valor del diccionario en la vista
Tengo un modelo de vista que tiene un diccionario como una de sus propiedades. Este diccionario es para llenar una selección HTML con la Categoría cuando estoy editando un registro. También hay una propiedad para indicar el CategoryID seleccionado. Sin embargo, cuando solo estoy mostrando el registro, quiero mostrar el valor del par clave/valor que corresponde con el CategoryID.
Mi vista del modelo:
public class ItemEditVM
{
public int ItemID { get; set; }
public int? CategoryID { get; set; }
public string ItemDesc { get; set; }
public Dictionary<int, string> CategorySelect { get; set; }
}
he intentado algo como esto pero tengo los parámetros de la función equivocada:
@Html.DisplayFor(model => model.CategorySelect.TryGetValue(model.CategoryID, out val))
También he intentado esto lo que no funcionará y no específica mensaje de error:
@Html.DisplayFor(model => model.CategorySelect.SingleOrDefault(c=> int.Parse(c.Value) == model.CategoryID).Value)
¿Cómo puedo hacer esto?
Muchas gracias
LA RESPUESTA CORRECTA (Gracias a Mystere Man)
@Html.DisplayFor(model=>model.CategorySelect[Model.CategoryID.Value])
Una nota rápida: no diseñé esta base de datos y en la tabla de elementos el ID de categoría es un FK pero también puede aceptar valores nulos. No sabía que pudieras hacer eso. De todos modos, para no violar el FK, en realidad el CategoryID siempre estará poblado. – BKahuna
Por supuesto, los FK pueden ser nulos. PK no puede ser nulo. Un FK que es nulo solo significa que no hay relación. –