ASP.NET MVC связать массив в модели - PullRequest
41 голосов
/ 17 января 2010

Это вопрос из двух частей (пожалуйста, дайте мне знать, если они должны быть разделены).

1) У меня есть класс модели с массивом объектов, содержащихся внутри. Я хотел бы иметь возможность связать это автоматически, чтобы я мог принять один аргумент pollModel в моих контроллерах.

public class pollResponseModel
{
    public long id { get; set; }
    public long pollID { get; set; }
    public string text { get; set; }
    public long count { get; set; }
}

public class pollModel
{
    public long id;
    public long entID { get; set; }
    public string question { get; set; }
    public DateTime posted { get; set; }
    public DateTime expiration { get; set; }

    public pollResponseModel[] responses { get; set; }
}

Проблема в том, что я не уверен, как связать поле responses, так как оно может быть любого произвольного размера. Ну, я могу правильно связать его при отображении редактирования, но это все. Это подводит меня ко второй части моего вопроса:

2) Каков приемлемый способ динамического создания и удаления данных в списке на клиенте, чтобы его можно было привязать к модели и получить доступ к нему в измененном виде на сервере? Я предполагаю, что процесс создания / удаления работает как графический интерфейс списка iPhone: одна кнопка + добавит новый элемент, а кнопка - в каждой строке данных удалит его из списка. Я бы предположил, что jQuery - подходящая отправная точка, но мои навыки JS очень ограничены.

1 Ответ

47 голосов
/ 17 января 2010

Ознакомьтесь с этой статьей Фила Хаака: Привязка модели к списку . Это объясняет, что именно вам нужно сделать для привязки к списку свойств или свойств, которые являются сложными объектами.

По сути, вам просто нужно правильно построить ваши данные POST, чтобы связыватель модели мог их проанализировать. В статье объясняется, как добавлять скрытые индексные поля и представлять ваши сложные свойства в форме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...