我试图使用enum作为DropDownList的文本和值的来源。不幸的是,它没有像预期的那样工作-- DropDownList已经被填充,但是没有选择任何选项。
这里是枚举:
public enum OrderLineState
{
Draft = 0,
InProcess = 1,
Done = 2
}下面是我如何从枚举中填充DropDown:
public IEnumerable<Helper.OrderLineStateData> GetOrderLineStates()
{
return from Enums.OrderLineState s in Enum.GetValues(typeof(Enums.OrderLineState))
select new Helper.OrderLineStateData() { OrderLineStateId = (int)s, OrderLineStateName = s.ToString() };
}我是主计长:
[Authorize]
public async Task<ActionResult> EditOrderLine(int id)
{
ViewBag.OrderLineStates = new SelectList(_olr.GetOrderLineStates(), "OrderLineStateId", "OrderLineStateName");
var result = await _olr.GetAllOrderLines(id);
return PartialView(result);
}最后- Razor View:
<td>
@Html.DropDownListFor(x => item.LineState, (IEnumerable<SelectListItem>)ViewBag.OrderLineStates, new { @class = "form-control" })
</td>发布于 2015-11-22 16:08:59
如果您是MVC 5,那么就有一个枚举助手。试试这个:
public enum OrderLineState
{
[Display(Name = "Draft")]
Draft = 0,
[Display(Name = "In Process")]
InProcess = 1,
[Display(Name = "Done")]
Done = 2
}然后
@Html.EnumDropDownListFor(model => model.LineState)http://www.drdobbs.com/windows/aspnet-mvc-51/240168353
https://stackoverflow.com/questions/33855818
复制相似问题