Я занимаюсь разработкой веб-приложения 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 немного обременителен, и я был бы очень признателен, если бы кто-то мог поделиться лучшим методом?
Спасибо за ваше время.