J'utilise ASP.NET et d'obtenir un petit problème avec Enum
:Coulée à Int32 est nécessaire lors de l'utilisation de la méthode GetName enum
public enum Lang : byte
{
en = 0,
fr = 1
}
Lang value = Lang.en;
string name = Enum.GetName(typeof(Lang), value); // "en"
cela fonctionne. depuis je l'ai changé à:
@foreach (SelectListItem lang in Html.GetEnumSelectList<Lang>())
{
string name = Enum.GetName(typeof(Lang), lang.Value);
}
j'avais reçu ce message d'erreur:
ArgumentException: La valeur transmise doit être une base enum ou un type sous-jacent pour un ENUM, comme un Int32 . Nom du paramètre: Valeur
, j'avais essayé:
string name = Enum.GetName(typeof(Lang), Convert.ToInt32(lang.Value));
il a travaillé.
pourquoi est-ce?
Lang.en
est byte
, pourquoi a-t-il besoin d'un Int32
?
cela aide beaucoup. Merci :) – Vayne