Я недавно начал изучать ASP.NET MVC. Я изучил немало примеров, и для них характерно то, что они содержат довольно простые сценарии, в которых представление будет отображаться либо на экземпляр типа в модели, либо на список типичного типа модели.
Я ищу рекомендации по составлению / составному просмотру. В долгосрочной перспективе я хотел бы, чтобы Ajax был частью уравнения, но сейчас я ищу более простую установку без Ajax.
Проблема
Вот описание надуманной проблемы. Модель домена содержит типы A и B .
class A
{ String ID, String Name, int Age
List<B> ListOfB
}
class B
{ String ID, String Name, String Url}
Я хотел бы иметь следующее:
- DropDownList показывает тип A информация
- Сведения о конкретном A , выбранном в раскрывающемся списке
- Список, показывающий тип B , связанный с выбранным типом A
- Форма, позволяющая редактировать данные выбранного типа A
- Форма, позволяющая пользователю добавить новый B.
Представление не должно показывать все это сразу, вместо этого оно должно показывать различные комбинации информации и функциональности в соответствии с пользовательским вводом. Например, сочетания деталей и функциональности могут быть следующими:
- Изначально отображать только выпадающий список, содержащий A 's
- Если в раскрывающемся списке выбран A :
- Показать конкретный A , выбранный в раскрывающемся списке
- Показать подробную информацию о выбранном A
- Показать список подробной информации связанного типа B 's
- Пользователь хочет отредактировать определенный A
- Показать конкретный A , выбранный в раскрывающемся списке
- Показать форму, которая позволяет пользователю редактировать A
- Показать список подробной информации связанного типа B 's
- Пользователь хочет добавить новый B
- Показать конкретный A , выбранный в раскрывающемся списке
- Показать подробную информацию о выбранном A
- Показать список подробной информации связанного типа B 's
Это может выглядеть примерно так (используется веб-версия макетов balsamiq - какое фантастическое изобретение!):
Комбинация 2:
Комбинация 4:
Создание вида и контроллера
Поскольку решение должно учитывать различные комбинации данных и функциональности, я думаю, было бы разумно иметь родительское представление (не путать с главной страницей), содержащее заполнители для четных представлений. Затем контроллер родительских представлений может составить правильные комбинации данных модели и частичных представлений и передать их в родительское представление.
Наконец; вопросы:
Мой образ мышления соответствует методологии asp.net mvc?
Можете ли вы объяснить / показать (не обязательно все), как контроллер может скомпилировать правильную комбинацию частичных представлений и передать их в родительское представление?
Можете ли вы указать мне на решение на основе Ajax?
Можете ли вы предложить книги / ссылки, содержащие примеры сложных представлений?