Насколько я могу судить, существует 3 способа создания DropDownList в ASP.NET MVC View:
- Ручной код HTML вручную
<asp:DropDownList ID="someID" runat="server"></asp:DropDownList>
<%= Html.DropDownList("someID") %>
Я думаю, что мы все можем согласиться с тем, что № 1 (как правило) является пустой тратой времени.
С # 2 это выглядит как «WebForms», но имеет преимущество в том, что если вы пишете View, вы можете иметь доступ к объекту, который вы создали, через встроенный код, который происходит после Это. Например:
<asp:DropDownList ID="someID" runat="server"></asp:DropDownList>
<%
someID.SelectedIndex = 0;
string someString = someID.SelectedValue.ToString();
%>
Это не представляется возможным с # 3.
Приятная вещь, которую я обнаружил в # 3 (способ HTML Helper), заключается в том, что, передавая ей строку, она устанавливает имя и идентификатор в строку, а также использует эту строку для поиска в словаре ViewData и автоматического -генерировать соответствующие теги для DropDownList на основе SelectList, который был добавлен в словарь ViewData, который был добавлен в вызывающий контроллер.
// controller code
ViewData["someID"] = new SelectList(someMethod().ToList());
Насколько я могу судить, я не могу понять, есть ли способ автоматически сгенерировать теги с помощью <asp:DropDownList>
или я должен сам создать их вручную.
Каков обычно лучший подход для реализации DropDownList в ASP.NET MVC?