Один из способов, с помощью которых я видел это, - создать объект для переноса идентификатора и значения раскрывающегося элемента, например List<SelectValue>
, и передать его в ViewModel представлению, а затем использовать помощник HTML построить выпадающий
public class SelectValue
{
/// <summary>
/// Id of the dropdown value
/// </summary>
public int Id { get; set; }
/// <summary>
/// Display string for the Dropdown
/// </summary>
public string DropdownValue { get; set; }
}
Вот вид модели:
public class TestViewModel
{
public List<SelectValue> DropDownValues {get; set;}
}
Вот HTML-помощник:
public static SelectList CreateSelectListWithSelectOption(this HtmlHelper helper, List<SelectValue> options, string selectedValue)
{
var values = (from option in options
select new { Id = option.Id.ToString(), Value = option.DropdownValue }).ToList();
values.Insert(0, new { Id = 0, Value = "--Select--" });
return new SelectList(values, "Id", "Value", selectedValue);
}
Тогда, по вашему мнению, вы вызываете помощника:
@Html.DropDownList("DropDownListName", Html.CreateSelectListWithSelect(Model.DropDownValues, "--Select--"))