MVC 3 - affichage de la valeur à partir du dictionnaire de vue
Je suppose que c'est simple et je suis juste en manque c'.
J'ai une vision modèle qui dispose d'un dictionnaire comme une de ses propriétés. Ce dictionnaire est pour le remplissage d'un HTML, sélectionnez la Catégorie, quand je suis à la modification d'un enregistrement. Il y a aussi une propriété pour indiquer sélectionnés CategoryID. Cependant, quand je suis juste de l'affichage de l'enregistrement je veux afficher la valeur de la paire clé/valeur qui correspond à la CategoryID.
Mon point de vue, modèle:
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; }
}
J'ai essayé quelque chose comme ça, mais j'ai des paramètres de la fonction tort:
@Html.DisplayFor(model => model.CategorySelect.TryGetValue(model.CategoryID, out val))
J'ai aussi essayé ce qui échoue avec message d'erreur:
@Html.DisplayFor(model => model.CategorySelect.SingleOrDefault(c=> int.Parse(c.Value) == model.CategoryID).Value)
Comment puis-je faire cela?
Merci beaucoup
LA RÉPONSE CORRECTE (Merci à Mystère de l'Homme)
@Html.DisplayFor(model=>model.CategorySelect[Model.CategoryID.Value])
- Une note rapide - je n'ai pas la conception de cette base de données et dans le tableau des éléments de la CategoryID est un FK mais il peut aussi accepter les valeurs null. Je ne savais pas qu'on pouvait le faire. De toute façon, pour ne pas violer la FK, en réalité, la CategoryID sera toujours remplie.
- Bien sûr FK peut être null. PK est ne peut pas être null. Un FK c'est la valeur null signifie simplement il n'y a pas de relation.
Vous devez vous connecter pour publier un commentaire.
Avez-vous essayé:
Puisque comme vous le dites, "CategoryID" n'est pas null, alors cela ne devrait pas être un problème.. sauf s'il peut être null, dans ce cas, vous devez faire de la validation.