У меня есть приложение ASP.Net MVC с моделью, состоящей из нескольких слоев, содержащих коллекцию.ASP.Net MVC - модель с коллекцией, не заполняющейся после обратной связи
Я считаю, что представление о создании объектов настроено правильно, но оно просто не заполняет коллекцию в модели при отправке формы на сервер.
У меня есть часть данных, которая находится в иерархии классов, таким образом:
person.PersonDetails.ContactInformation[0].Data;
Этот класс структура, созданный LinqToSql и ContactInformation имеет тип EntitySet<ContactData>
. Для того, чтобы создать представление я прохожу следующее:
return View(person);
и в поле зрения у меня есть форма, которая содержит одно текстовое поле с именем, связанной с вышеуказанной области:
<%= Html.TextBox("person.PersonDetails.ContactInformation[0].Data")%>
Сообщение метод в мой контроллер затем следующим образом:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create (Person person)
{
//Do stuff to validate and add to the database
}
Именно в этот момент, когда я запутаться, как person.PersonDetails.ContactInformation.Count() == 0. Таким образом, ModelBinder создал объект ContactInformation, но не заполнил его объектом, который он должен удерживать (то есть ContactData), с индексом 0.
Мой вопрос в два раза: 1. Правильно ли я принял решение. эта работа? 2. Любые идеи относительно того, почему это может не заполнить объект ContactInformation?
Большое спасибо, Richard
Спасибо, что работает отлично. Я пробовал пример с гораздо более глубокой иерархией, которая работала отлично, но вы, вероятно, правы, что она теряется в сложности. Два комментария, однако, для ясности: 1. Мне понадобился только [Bind (Prefix = «Person.PersonDetails.ContactInformation»)] ContactInformation [] info) и соответствующая настройка объекта модели. 2. ContactInformation [] должен быть EntitySet для правильного отображения. Теперь, чтобы найти более подробную информацию о префиксе .... Спасибо за помощь. Richard –
Richbits
Ничего, еще не читал о 'префиксах'! – Ropstah
good one. Или вы могли бы разработать собственное собственное связующее устройство, которое бы понимало, как вывести сложную модель из входов формы, можете ли вы обмениваться ссылкой или имплицировать. если u hv уже сделано? –