Asp.net mvc 2 MVC选择列表与多选择列表
在MVC中,SelectList源于MultiSelectList。不过,我分不清它们之间的区别。对于这两种情况,我都必须告诉它选择多个项目(我希望不必这样做,因为名称中有“multi”) 如果在下面的代码中将“SelectList”替换为“MultiSelectList”,它将生成相同的HTML:Asp.net mvc 2 MVC选择列表与多选择列表,asp.net-mvc-2,selectlist,multi-select,mvchtmlstring,Asp.net Mvc 2,Selectlist,Multi Select,Mvchtmlstring,在MVC中,SelectList源于MultiSelectList。不过,我分不清它们之间的区别。对于这两种情况,我都必须告诉它选择多个项目(我希望不必这样做,因为名称中有“multi”) 如果在下面的代码中将“SelectList”替换为“MultiSelectList”,它将生成相同的HTML: <% var leftSelectList = new SelectList(Model.LeftSide,"Key","Value"); var attrs = new SortedDic
<%
var leftSelectList = new SelectList(Model.LeftSide,"Key","Value");
var attrs = new SortedDictionary<string, object> {{"class", "ui-widget"}};
MvcHtmlString disabledStyle = MvcHtmlString.Create(Html.Encode("'width:50px;'"));
attrs.Add("style", disabledStyle);
attrs.Add("multiple", "multiple");
attrs.Add("size", "5"); /*-- how many items to show--*/
var leftItems = Html.DropDownList("ddlLeftItems", leftSelectList, attrs); %>
<%= leftItems.ToHtmlString()%>
生成的HTML是:
<select class="ui-widget" id="ddlLeftItems" multiple="multiple" name="ddlLeftItems" size="5" style="&#39;width:50px;&#39;">
<option value="1">A</option>
<option value="2">B</option>
<option value="3">C</option>
<option value="5">E</option>
<option value="9">I</option>
</select>
A.
B
C
E
我
那么,我应该用哪一个呢?谢谢。多选列表与
Html.ListBox
和Html.ListBoxFor
方法一起使用。这些帮助程序生成以下内容:MultiSelectList与Html.ListBox
和Html.ListBoxFor
方法一起使用。这些帮助程序生成以下内容:SelectList对象不生成HTML。它创建一个项目列表,然后可以在其他地方使用。DropDownList helper函数生成页面上使用的HTML,这就是为什么您会看到完全相同的HTML
SelectList对象派生自MultiSelectList,但为您提供了一个属性来获取单个选定值(称为SelectedValue)。MultiSelectList只有一个名为SelectedValues的属性,它保存所有选定的值
因此,如果您使用的是多选列表,那么使用哪一个并不重要,但是如果您使用的是单选列表,那么您应该使用SelectList,因为它更容易获取所选值。SelectList对象不会生成HTML。它创建一个项目列表,然后可以在其他地方使用。DropDownList helper函数生成页面上使用的HTML,这就是为什么您会看到完全相同的HTML SelectList对象派生自MultiSelectList,但为您提供了一个属性来获取单个选定值(称为SelectedValue)。MultiSelectList只有一个名为SelectedValues的属性,它保存所有选定的值 因此,如果您使用的是多选列表,那么使用哪一个并不重要,但是如果您使用的是单选列表,那么您应该使用SelectList,因为它更容易获取所选值