如何编写一个简单的Html.DropDownListFor()?
在ASP.NET MVC 2中,我想编写一个非常简单的下拉列表,给出静态选项。 例如,我想提供“红色”,“蓝色”和“绿色”之间的select。
请参阅此MSDN文章以及Stack Overflow的示例用法 。
假设您有以下Linq / POCO类:
public class Color { public int ColorId { get; set; } public string Name { get; set; } }
假设您有以下模型:
public class PageModel { public int MyColorId { get; set; } }
最后,让我们说,你有以下的颜色列表。 他们可能来自Linq查询,来自静态列表等。
public static IEnumerable<Color> Colors = new List<Color> { new Color { ColorId = 1, Name = "Red" }, new Color { ColorId = 2, Name = "Blue" } };
在你看来,你可以创build一个下拉列表,如下所示:
<%= Html.DropDownListFor(n => n.MyColorId, new SelectList(Colors, "ColorId", "Name")) %>
<%: Html.DropDownListFor( model => model.Color, new SelectList( new List<Object>{ new { value = 0 , text = "Red" }, new { value = 1 , text = "Blue" }, new { value = 2 , text = "Green"} }, "value", "text", Model.Color ) ) %>
或者你可以写任何类,把这样的东西直接到视图。
从模型中的字典开始避免大量的胖指法
namespace EzPL8.Models { public class MyEggs { public Dictionary<int, string> Egg { get; set; } public MyEggs() { Egg = new Dictionary<int, string>() { { 0, "No Preference"}, { 1, "I hate eggs"}, { 2, "Over Easy"}, { 3, "Sunny Side Up"}, { 4, "Scrambled"}, { 5, "Hard Boiled"}, { 6, "Eggs Benedict"} }; } }
在视图中,将其转换为列表进行显示
@Html.DropDownListFor(m => m.Egg.Keys, new SelectList( Model.Egg, "Key", "Value"))
嗨,这是我在一个项目中是如何做到的:
@Html.DropDownListFor(model => model.MyOption, new List<SelectListItem> { new SelectListItem { Value = "0" , Text = "Option A" }, new SelectListItem { Value = "1" , Text = "Option B" }, new SelectListItem { Value = "2" , Text = "Option C" } }, new { @class="myselect"})
我希望它有助于某人。 谢谢
或者,如果它来自数据库上下文,则可以使用
@Html.DropDownListFor(model => model.MyOption, db.MyOptions.Select(x => new SelectListItem { Text = x.Name, Value = x.Id.ToString() }))
用“请select一个项目”
@Html.DropDownListFor(model => model.ContentManagement_Send_Section, new List<SelectListItem> { new SelectListItem { Value = "0", Text = "Plese Select one Item" } } .Concat(db.NameOfPaperSections.Select(x => new SelectListItem { Text = x.NameOfPaperSection, Value = x.PaperSectionID.ToString() })), new { @class = "myselect" })
源自代码: Master Programmer && Joel Wahlund ;
King参考: https: //stackoverflow.com/a/1528193/1395101 JaredPar ;
感谢程序员 && Joel Wahlund & JaredPar ;
祝你好运的朋友。