2016-04-06 6 views
-1

У меня есть приложение ASP.NET MVC со столом, в котором есть квартиры (адрес, дата добавлена, комментарий).Связывание DropDownList с таблицей

В формах «создавать» и «редактировать» я хочу использовать DropDownList, например. для плоского типа.

У меня есть 1 стол со всеми этими плоскими свойствами (адрес и т. Д.), Второй с плоскими типами (id + name).

Мой вопрос заключается в том, как связать dropdownlist с таблицей плоских типов, а затем выполнить правильные отношения между этими таблицами? Могу ли я сделать это в одном контроллере?

Резюме:

Я хочу предоставить список с элементами из одной таблицы, вставить нужное значение Id для основной таблицы и связать их с Id-Id отношения. Угадайте, что я могу использовать только одну @ Html.Model в моих представлениях Create/Edit (это моя проблема с басом)

+0

Вы что-то пробовали? Сообщество StackOverflow обычно передает код :) – Alexei

+0

Я не знаю, как использовать модель «FlatType» в любом представлении, когда мне нужно использовать также поля из «плоской» модели – user6167767

ответ

0

Вы не привязываете свой компонент (выпадающий список) к таблице в базе данных.

MVC - это шаблон проектирования, в котором данные передаются через разные уровни, получая ясность и эффективность кода.

Ваша бизнес-модель (M в MVC) должна будет реализовать метод загрузки данных из базы данных. Вы можете использовать Linq2Sql, вы можете напрямую выполнять свои запросы через соединение с базой данных или использовать любую систему, которую вы предпочитаете.

Это означает, что когда ваша система реагирует на петицию, как правило, с вызовом контроллера в представлении, если вы хотите, чтобы этот вид загружал данные в объект, вы должны загрузить его из базы данных, прежде чем передавать его в представление.

Таким образом, ваш контроллер решает позвонить в представление, ваша бизнес-модель идентифицирует информацию, которая потребуется в представлении, и создает структуры данных, которые будут извлекаться в представление. Затем в представлении вы просто связываете свой элемент управления dropdownlist с данными в модели.

Обычно тип SelectList является одним из лучших вариантов связывания данных с помощью DropDownList, хотя вы можете использовать практически любой тип IEnumerable.

TL; DR ;:

  • Считывает данные из базы данных в вашей модели, перед вызовом зрения.
  • Создайте SelectList и загрузите его этими данными.
  • Передайте данные на просмотр (подсказка: это может быть часть большей структуры данных).
  • Связать компонент DropDownList с SelectList, переданным в Модель просмотра.
+0

для получения дополнительной информации, но у меня есть еще один вопрос. В моей модели ViewModel у меня есть список и IQueryable . Как мне объявить Flat для доступа к любому полю Flat table на мой взгляд? – user6167767

+0

Если вы передадите объект IQueryable в свой вид, через return View (yourObject), вы можете получить доступ к этому объекту в момент рендеринга в представлении с помощью Model.yourObjectAttributes, что означает, что если yourObject является объектом IQueryable, вы можете прокручивать объект Model на вид. Конечно, вам нужно загрузить информацию о базе данных на свой объект, прежде чем возвращать ее в представление. – Bardo