Динамическая форма с неопределенным количеством элементов

#asp.net-mvc

#asp.net-mvc

Вопрос:

У меня есть класс:

 class Item
{
    public string Name { get; set; }
    public DateTime Date { get; set; }
}
  

У меня есть представление, в котором я хочу, чтобы объекты для указанного выше класса были созданы с использованием входных данных (поэтому у меня есть текстовое поле для имени и параметр типа выбора даты для даты). Однако я хочу, чтобы пользователь мог щелкнуть ссылку, и через jquery / javascript в форму будет добавлено другое текстовое поле и выбранная дата, и это может происходить неограниченное количество раз.

Как я могу привязать это к модели, чтобы я мог вернуть это в свой метод действия? В идеале модель должна быть чем-то вроде:

 class MyModel
{
    public string AProperty { get; set; }
    public List<Item> Items { get; set; }
}
  

Прошу прощения за плохую формулировку, изо всех сил пытаюсь описать, что я хочу, но я думаю, что это должно донести суть.

Ответ №1:

Вы хотите использовать шаблон на стороне клиента, а затем вернуть JSON на ваш контроллер. Если вы используете MVC 3, привязка модели JSON встроена, но в MVC 2 вам нужно настроить свою собственную привязку. Здесь есть пример.

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