2009-08-26 1 views
5

Мы используем ASP.NET MVC вместе с NHibernate, и мы хотели бы создать несколько списков распада, используя значения (пользовательский класс) из базы данных. Это действительно работает, но как я могу обработать «Пустое» значение; Я имею в виду, «невыбранный» DropdownValue? Что-то вроде «- Select -» в верхней части списка ... Кто-нибудь имеет опыт работы с этой комбинацией NHibernate, ASP.NET MVC и Dropdown?Работа с NHibernate, ASP.NET MVC и Dropdown

Спасибо!

ответ

1

Я думаю, что это легко обрабатывается с помощью класса ViewModel. Допустим, у вас есть OrderView в вашем приложении, которое отображает заказ. В этом представлении у вас есть раскрывающийся список «Тип элемента», содержащий список типов элементов.

модель, которая должна быть подана на ваш взгляд должен быть класс, как OrderViewModel, который содержит список ItemType объектов. Когда контроллер загружает список объектов ItemType из базы данных с помощью NHib, он может затем вставлять в коллекцию дополнительные «специальные» типы элементов, например, для «--SELECT--».

Другими словами, не привязывайте напрямую к свойству сопоставления коллекции Nhibernate - используйте Nhibernate для загрузки данных в список, который затем можно манипулировать по желанию.

+1

hi HokieMike, спасибо большое за ваше первое предложение! Я уже использую шаблон ViewModel. (кстати, становится сложнее, если Master/Details Views присоединяются к игре) Вот как я это делаю в данный момент: В представлении я вызываю метод «AsSelectList» на пользовательском свойстве класса, который возвращает мне SelectList этого типа выпадающего списка. Внутри этого метода «-Select--» добавляется из базы данных с IdValue 1. Это работает без проблем. Но если дело доходит до сохранения объекта, я бы предпочел иметь «NULL» в БД, если был выбран «--Select--», а не внешний ключ 1 «--Select -» ... – stromflut

0

Лучший способ иметь значение «--выберите--» в раскрывающемся будет параметр optionLabel, который доступен в Html.DropdownList

Затем сохраните «нуль» в базу данных, и вы должны иметь чистый путь ;)

<%= Html.DropDownList("myDropdown",mylist,"--please choose--" %> 

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

  • Нет связанных вопросов^_^