Привязка модели MVC по умолчанию к сложному списку

StackOverflow https://stackoverflow.com/questions/1650645

  •  22-07-2019
  •  | 
  •  

Вопрос

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

Конкурс < Конкурсные вопросы & Lt; CompetitionQuestionChoices

мой 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");

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

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

Это было полезно?

Решение

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top