pass enum to html.radiobuttonfor MVC3
Eu tenho um enumerado chamado ActionStatus com 2 valores possíveis aberto = 0 e fechado = 1
public enum ActionStatus
{
Open,
Closed
}
Quero criar um grupo de botões de opção em minha edição e criar visualizações que usem a enum para preencher os botões de opção com a) um valor padrão na visualização de criação eb) a opção atualmente selecionada na visualização de ediçã
Preciso de um método de extensão para isso e alguém já criou u
EDIT: Após a resposta de Darins abaixo, esta é a minha classe Model
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
}
e esta é a minha opinião
@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>
E esta é a minha ação de criação de controlador
public virtual ActionResult Create(int id)
{
var meetingAction = new MeetingAction
{
MeetingId = id,
ReviewDate = DateTime.Now.AddDays(7)
};
ViewBag.Title = "Create Action";
return View(meetingAction);
}
A enumeração é exibida na visualização, mas a opção atualmente selecionada não é mantida no banco de dados