Привязка модели MVC по умолчанию к сложному списку - PullRequest
0 голосов
/ 30 октября 2009

У меня возникли проблемы с привязкой к вложенному списку с помощью связывателя по умолчанию. Я использую linq to sql и имею следующую структуру данных

Конкурс <Конкурсные вопросы <Конкурсные вопросыВыборы </p>

мой HTML выглядит следующим образом

<%= Html.Hidden("Competition.Id",Model.Competition.Id) %>
 <%=Html.TextBox("Competition.CompetitionName", Model.Competition.CompetitionName )%>

<%= Html.TextBox("Competion.CompetitionQuestions[0].Id", Model.CompetitionQuestion.Id)%>
<%= Html.TextBox("Competion.CompetitionQuestions[0].Question", Model.CompetitionQuestion.Question )%>

<%= Html.TextBox("Competion.CompetitionQuestions[0].CompetitionQuestionChoices[0].Id", Model.CompetitionQuestionChoices.Id)%>

<%= Html.TextBox("Competion.CompetitionQuestions[0].CompetitionQuestionChoices[0].Choice", Model.CompetitionQuestionChoices.Choice)%>

В моем контроллере я пробовал

[AcceptVerbs(HttpVerbs.Post)]
        public ActionResult Save([Bind(Prefix="Competition")]Competition competition)
{

}

что дает мне конкуренцию, но не дочерние элементы

Я добился большего успеха без префикса Competition в списках в HTML и привязки к каждой коллекции в отдельности, например,

UpdateModel(competition,"Competition");
UpdateModel(competition.CompetitionQuestions,"competitionQuestions");

но я не могу заставить это работать для CompetQQutionChoices, так как он должен иметь два префикса, и я не уверен, как объявить

С благодарностью принимается любая помощь.

1 Ответ

0 голосов
/ 01 ноября 2009

Оказывается, мои проблемы были связаны с проблемой метода присвоения в .Net 3.5. После нацеливания на .Net 4 связывание работало правильно. Вот сообщение с дальнейшими пояснениями.

...