Domanda

Ho dei problemi a legare a un elenco nidificato con il raccoglitore predefinito. Sto usando Linq to SQL e ho la seguente struttura di dati

Competizione < CompetitionQuestions & Lt; CompetitionQuestionChoices

il mio html è il seguente

<%= 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)%>

Nel mio controller ho provato

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

}

che mi dà una competizione ma nessun elemento figlio

Sono stato più efficace senza il prefisso del concorso sugli elenchi nell'HTML e vincolante per ciascuna raccolta singolarmente, ad esempio

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

ma non riesco a farlo funzionare per la concorrenzaQuestionChoices in quanto deve avere due prefissi e non sono sicuro su come dichiarare

Qualsiasi aiuto viene ricevuto con gratitudine.

È stato utile?

Soluzione

si scopre che i miei problemi derivavano da un problema con il metodo di assegnazione in .Net 3.5 Dopo aver scelto come target .Net 4 il bind ha funzionato correttamente. Ecco un post con ulteriori spiegazioni.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top