据我所知,有 3 种方法可以在 ASP.NET MVC 视图中创建 DropDownList:
- 手动编写 HTML 代码
<asp:DropDownList ID="someID" runat="server"></asp:DropDownList>
<%= Html.DropDownList("someID") %>
我想我们都同意#1(通常)是浪费时间。
使用#2,它似乎是“WebForms”的方式,但有一个优势,如果你正在编写一个视图,你可以通过它之后的内联代码访问你创建的对象。例如:
<asp:DropDownList ID="someID" runat="server"></asp:DropDownList>
<%
someID.SelectedIndex = 0;
string someString = someID.SelectedValue.ToString();
%>
#3似乎无法做到这一点。
我发现关于#3(HTML Helper 方式)的好处是,通过将字符串传递给它,它将名称和 ID 设置为字符串,并使用字符串搜索 ViewData 字典并自动生成基于添加到调用控制器中添加的 ViewData 字典的 SelectList 的 DropDownList 的相应标记。
// controller code
ViewData["someID"] = new SelectList(someMethod().ToList());
对于我的生活,我无法弄清楚是否有一种方法可以自动生成标签,<asp:DropDownList>
或者我是否必须自己手动创建它们。
在 ASP.NET MVC 中实现 DropDownList 的最佳方法通常是什么?