Modello predefinito MVC associato a un elenco complesso
-
22-07-2019 - |
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.
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.