Раскрывающийся список ASP.Net MVC - PullRequest
0 голосов
/ 18 февраля 2011

Я занимаюсь разработкой веб-приложения ASP.Net MVC 3 и считаю, что мой метод возврата списка элементов в раскрывающийся список в представлении немного сложен.Позвольте мне объяснить.

У меня есть ViewModel, которая содержит объект Equipment и SelectList для отображения списка категорий.

public class AddEquipmentViewModel
{
    public Equipment equipment { get; set; }
    public SelectList categoryList { get; set; }

}

В методе GET create моего контроллера оборудования я возвращаюсьмоя ViewModel для представления, см. ниже:

//Add new select list item named 'Please select option' to the top of list
        var categoryList = categoryService.GetAllCategories();
        var categorySelectListItems = categoryList.Select(c => new SelectListItem { Value = c.categoryID.ToString(), Text = c.categoryTitle  }).ToList();
        categorySelectListItems.Insert(0, new SelectListItem { Text = "Please select option", Value = string.Empty });

AddEquipmentViewModel viewModel = new AddEquipmentViewModel
        {
            equipment = new Equipment(),
            categoryList = new SelectList(categorySelectListItems.ToList(), "Value", "Text")
        };

Я знаю, что мог бы отменить дополнительный код, прежде чем создавать экземпляр моей ViewModel, и просто назначить свой список категорий соответствующему свойству ViewModel, например,

categoryList = new SelectList(categoryService.GetAllCategories(), "categoryID", "categoryTitle")

Однако тогда это просто возвращает список категорий в мой раскрывающийся список в моем представлении, тогда как я хотел бы добавить новый SelectListItem, то есть «Пожалуйста, выберите опцию».

Я просто чувствую, что мой подход к ручному добавлению нового SelectListItem в мой SelectList немного обременителен, и я был бы очень признателен, если бы кто-то мог поделиться лучшим методом?

Спасибо за ваше время.

1 Ответ

3 голосов
/ 18 февраля 2011
<%= Html.DropDownList("name", new SelectList(...), "Your Combobox default message")%>

Надеюсь, это поможет

...