J'Ai un Enum Appelé ActionStatus qui a 2 valeurs possibles open=0 et fermé = 1
public enum ActionStatus
{
Open,
Closed
}
Je veux construire groupe de boutons radio dans mon éditer et de créer des vues qui utilise le protocole enum pour remplir les boutons de la radio avec a) une valeur par défaut dans la vue de créer et b) l'option actuellement sélectionnée dans la vue d'édition.
Ai-je besoin d'une méthode d'extension pour cela, et personne n'a déjà créé?
EDIT: Après Darins la réponse ci-dessous c'est mon Modèle de classe
namespace Actioner.Models
{
[MetadataType(typeof(MeetingActionValidation))]
public class MeetingAction
{
[Key]
public int MeetingActionId { get; set; }
[Required]
[Display(Name = "Description")]
public string Description { get; set; }
[Required]
[Display(Name = "Review Date")]
public DateTime ReviewDate { get ;set; }
public int Status{ get; set; }
[ScaffoldColumn(false)]
public int MeetingId { get; set; }
//public virtual Meeting Meeting { get; set; }
//public virtual ICollection<User> Users { get; set; }
public virtual ICollection<ActionUpdate> ActionUpdates { get; set; }
public MeetingActionStatus ActionStatus { get; set; }
}
public enum MeetingActionStatus
{
Open,
Closed
}
et c'est mon point de vue
@model Actioner.Models.MeetingAction
@using Actioner.Helpers
<div class="editor-label">
@Html.LabelFor(model => model.Description)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Description)
@Html.ValidationMessageFor(model => model.Description)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.ReviewDate)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.ReviewDate)
@Html.ValidationMessageFor(model => model.ReviewDate)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Status)
</div>
<div class="editor-field">
@Html.RadioButtonForEnum(x => x.ActionStatus)
</div>
Et c'est mon créer contrôleur de l'action
public virtual ActionResult Create(int id)
{
var meetingAction = new MeetingAction
{
MeetingId = id,
ReviewDate = DateTime.Now.AddDays(7)
};
ViewBag.Title = "Create Action";
return View(meetingAction);
}
L'enum affiche bien dans la vue, mais l'option actuellement sélectionnée n'est pas conservée dans la base de données