Как передать выбранное значение из @ Html.EnumDropDownListДля моего контроллера? И на самом деле я не хочу передавать выбранное значение в виде строки, но я хочу передать соответствующее число в классе enum из выбранного элемента.Передача выбранного значения из EnumDropDownListFor для контроллера - MVC 5
Я прокомментировал свой код в классах (контроллер и представление) ниже.
Enum
public enum Leerjaar
{
[Display(Name="Eerste leerjaar")]
eerste = 1,
[Display(Name = "Tweede leerjaar")]
tweede = 2,
[Display(Name = "Derde leerjaar")]
derde = 3,
[Display(Name = "Vierde leerjaar")]
vierde = 4,
[Display(Name = "Vijfde leerjaar")]
vijfde = 5,
[Display(Name = "Zesde leerjaar")]
zesde = 6
}
ViewModel
public class GraadIndexViewModel
{
public Leerjaar leerjaar { get; set; }
public GraadIndexViewModel(Leerjaar leerjaar){
this.leerjaar = leerjaar;
}
}
Контроллер
public class GraadController : Controller
{
public ActionResult Index()
{
//Passing the Enum to my ViewModel
return View(new GraadIndexViewModel(new Leerjaar()));
}
[HttpPost]
//And here I want to receive the selected value from the enumdropdown
//in order to set my 'Leerjaar' field.
public ActionResult Index(GraadIndexViewModel g)
{
Leerjaar leerjaar = ???
}
}
Посмотреть
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<h4>Kies uw leerjaar</h4>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
@*Should I add something like new {leerjaarID = ???} here ?*@
@Html.EnumDropDownListFor(model => model.leerjaar, "Kies uw leerjaar")
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Ga verder" class="btn btn-default" />
</div>
</div>
</div>
Удалить конструктор из вашего класса ViewModel. – Dai