将ENUM分配给DropDownList

时间:2013-09-24 12:15:51

标签: c# asp.net-mvc enums ienumerable html-select

好的,我已经浏览了不同的网站,了解ENUMDropDownLists中的使用情况,并且与使用自定义帮助程序将值传递到ViewBag并将其传递给{{{ 1}}。

http://blogs.msdn.com/b/stuartleeks/archive/2010/05/21/asp-net-mvc-creating-a-dropdownlist-helper-for-enums.aspx

enum values in drop down list in mvc4

http://webcache.googleusercontent.com/search?q=cache:http://www.ninjanye.co.uk/2012/01/creating-dropdown-list-from-enum-in.html

我在整个网站中使用过各种DDL个助手,但之前在Html.DropDownList中还没有使用ENUM。我宁愿不将它们硬编码到View中,因为我使用DDL语句来控制选择switch选项时发生的情况。所以想知道是否有一种简单的方法来实现这一点,而无需创建新的帮助来纠正这种情况。

这是我到目前为止所做的(减去不必要的代码):

filter

如果我按照上面的说法执行此操作,则响应为“没有类型为”public enum OrderFilter { All, Live, InProgress, Invoiced, Outstanding } public ActionResult Index(OrderFilter? orderFilter) { ViewBag.FilterOptions = orderFilter; } @Html.DropDownList("orderFilter", (IEnumerable<SelectListItem>)ViewBag.FilterOptions, "Filter Options") “的ViewData项具有键”IEnumerable<SelectListItem>“。

我正在寻找类似于以下代码的东西,但没有使用自定义助手(如果可能的话)。

orderFilter

1 个答案:

答案 0 :(得分:0)

经过对此事的广泛调查后,按照我想要的方式做这件事并不是一件简单的事。所以我在helper类中添加了一个下拉列表中的ENUM值。

我看过的一些例子将模型与ENUM Helper结合使用,但由于我不需要,我发现下面的视频教程非常有用。以下视频是我目前的实施方式,并且按预期工作。

Binding Enum type with Dropdownlist Part 1

Binding Enum type with Dropdownlist Part 2

Binding Enum type with Dropdownlist Part 3