Динамическое добавление пользовательских элементов управления на страницу с использованием платформы ASP.NET MVC 3 - PullRequest
2 голосов
/ 04 января 2012

Что сделано:

На 1 одной странице опроса пользовательские элементы управления добавляются динамически. Это реализовано с использованием ASP.NET 4.0, При нажатии на кнопки «Далее», «Предыдущие» пользователь получает еще 5-10 элементов управления (которые динамически создаются и добавляются на страницу Survey - тривиальный ASP.NET GET / POST), и данные, введенные / выбранные на предыдущей группе элементов управления, отображаются сохранено в базе данных

Что определяется во время выполнения:

  • количество пользовательских элементов управления
  • тип пользовательских элементов управления (список переключателей, флажки, текстовые поля и т. Д. Внутри пользовательских элементов управления)
  • количество элементов управления asp.net внутри пользовательского элемента управления (количество переключателей в списке радиокнопок (которые в свою очередь находятся в пользовательском элементе управления), количество флажков внутри пользовательского элемента управления и т. Д.))

Есть ли способ реализовать эту функциональность с помощью MVC 3? (без больших неприятностей)

Почему рассматривается эта реализация, потому что:

  • Позволяет выполнять AJAX-замену элементов управления на странице Survey
  • В ближайшем будущем приложение должно обеспечивать те же функции для мобильных устройств, здесь MVC 4 выходит на арену с новыми функциями для мобильных устройств.

(все предложения приветствуются)

1 Ответ

1 голос
/ 04 января 2012

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

Просто используйте RenderPartial и укажите имя элемента управления / представления и модель представления.

<% RenderPartial("MyControl",theViewModel) %>

Вы могли бы сделать что-то вроде этого.Предполагается, что у вас есть коллекция данных, которая содержит свойство, которое является именем вашего элемента управления / частичного представления, и свойство, которое содержит модель данных.

<% for ( int i=0;i<data.Count;i++) { 
     RenderPartial(data[i].ControlTypeName, data[i].Model);
 }%>
...