2010-12-15 2 views
1

В MVC SelectList происходит из MultiSelectList. Я не могу сказать разницы между ними. Для обоих я должен сказать ему, чтобы выбрать несколько элементов (я ожидал, что не нужно делать это, так как в нем есть «multi»).MVC SelectList vs MultiSelectList

Если заменить "SelectList" с "MultiSelectList" в коде ниже, он будет генерировать тот же HTML:

<% 
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="&amp;#39;width:50px;&amp;#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> 

Итак, что один должен Я использую? Спасибо.

ответ

1

MultiSelectList используется с Html.ListBox и Html.ListBoxFor методами. Эти помощники генерируют это: HTML select multiple Attribute

+0

В ASP.NET MVC 4 я могу использовать их взаимозаменяемо ... – 2015-07-16 08:27:20

4

Объект SelectList не генерирует HTML. Он создает список элементов, которые затем могут использоваться в другом месте. Вспомогательная функция DropDownList - это то, что создает HTML-код, используемый на странице, поэтому вы видите тот же HTML-код.

Объект SelectList получен из MultiSelectList, но предоставляет вам свойство для получения единственного выбранного значения (называемого SelectedValue). В MultiSelectList есть свойство SelectedValues, которое содержит все выбранные значения.

Так что если вы делаете список с несколькими избранными, то на самом деле не имеет значения, какой из них вы используете, но если вы делаете список с одним выбором, то вы должны использовать SelectList, потому что это облегчает получение выбранное значение.

Смежные вопросы