Enum to View DropDown MVC3
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
How do you create a dropdownlist from an enum in ASP.NET MVC?
我知道有几个帖子涉及MVC3的下拉列表。我找不到一个能解决我具体问题的人。
我正在尝试将枚举的所有选项都放到视图的下拉列表中。
这是我的枚举/类:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | namespace ColoringBook public enum Colors { Red = 0, Blue = 1, Green = 2, Yellow = 3 } public class Drawing { private Colors myColor; public Colors MyColor { get { return this.myColor; } set { this.myColor= value; } } public Drawing(Colors color) { this.myColor = color; } } |
我的视图如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | @model ColoringBook.Drawing @{ Title ="Create"; } Create @using (Html.BeginForm()) { @Html.ValidationSummary(true) <fieldset> <legend>Color</legend> @Html.LabelFor(model => model.Color) //not sure how to fill //@Html.DropDownList("Color",new SelectList()) <p> <input type="submit" value="Create" /> </p> </fieldset> } |
我的控制器将具有提供和接收数据的操作结果:
1 2 3 4 5 6 7 8 9 10 11 12 13 | public class ColorController: Controller { public ActionResult Create() { return View(); } [HttpPost] public ActionResult Create(Colors dropdownColor) { //do some work and redirect to another View return View(dropdownColor); } |
我不担心文章(因此在从视图接收数据时,在复制创建代码方面缺乏努力),只关注get。从下拉列表中选择视图中的正确代码。
有人建议我不要使用VIEWBAG。除此之外,我愿意接受任何好的建议。
我对枚举下拉框使用以下代码:
1 2 3 4 5 | @Html.DropDownListFor(model => model.Color, Enum.GetValues(typeof(ColoringBook.Colors)).Cast<ColoringBook.Colors>().Select(v => new SelectListItem { Text = v.ToString().Replace("_",""), Value = ((int)v).ToString() }),"[Select]") |