À l'aide enum pour la liste déroulante dans ASP.NET MVC de Base
Je suis en train de créer une liste déroulante avec un enum propriété dans ASP.NET MVC Core à l'aide de la balise à l'aide dans un Rasoir vue:
Voici le modèle:
public class PersonalMember : Member
{
[Required, Display(Name = "First Name")]
public string FirstName { get; set; }
[Required, Display(Name = "Last Name")]
public string LastName { get; set; }
[EnumDataType(typeof(Gender))]
public Gender GenderType { get; set; }
}
public enum Gender
{
Male = 1,
Female = 2
}
Voici une partie d'un formulaire dans la vue:
<div class="form-group">
<label asp-for="GenderType" class="col-md-2 control-label"></label>
<div class="col-md-10">
<select asp-for="GenderType" asp-items="Html.GetEnumSelectList<GenderType>()">
<option selected="selected" value="">Please select</option>
</select>
<span asp-validation-for="GenderType" class="text-danger" />
</div>
</div>
Le problème, je vais avoir, c'est qu'après Html.GetEnumSelectList
, GenderType
n'est pas reconnu, et elle apparaît comme une erreur.
Personne ne sait comment résoudre ce problème?
- essayez de spécifier... comme @(Html.GetEnumSelectList<GenderType>())"
Vous devez vous connecter pour publier un commentaire.
GenderType
est votre nom de la propriété, pas le type Enum. Le GetEnumSelectList méthode attend de vous donner le type de l'Énumération, non pas le nom de la propriété dans votre modèle.Essayez ceci:
Je pense que vous avez accidentellement utilisé
GenderType
au lieu deGender
. La syntaxe correcte estVous pouvez simplement utiliser la syntaxe Razor:
J'ai eu le même problème, j'ai brûlé ma tête à la recherche d'une solution!
Vous pouvez remédier à cette situation, l'instanciation de votre modèle sur le dessus de votre point de vue comme:
@utilisant YourSolution.Modèle
Oui, il semble trop étrange, mais crois moi, ça fonctionne! Voir ma réponse sur mon propre post.
Sélectionnez ENUM Balise aide dans ASP.NET Core, MVC
vous utilisez le Sexe à l'asp, articles="Html.GetEnumSelectList -GenderType- ()" au lieu de GenderType
tels que asp-items="Html.GetEnumSelectList -Sexe- ()"