Привязка модели MVC по умолчанию к сложному списку
-
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 связывание работало правильно. Вот сообщение с дополнительными пояснениями.