Il passaggio di dati aggiuntivi del modello di visualizzazione con EditorFor ha esito negativo nelle relazioni uno-a-molti

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

Domanda

Ho un modello di editor (Views/Shared/EditorTemplates/HORDER.ascx) che eredita

System.Web.Mvc.ViewUserControl<CCOK2.Models.HORDER>

Il mio viewmodel ha una relazione uno-a-molti che utilizzo Html.EditorFor per eseguire il rendering di più HORDERS

<%: Html.EditorFor(model => model.PEOPLE.HORDERS, new {fred="hello"})%>

Alla fine quello che voglio fare è passare i dati per un elenco a discesa, tuttavia, per il momento, sto solo cercando di passare una stringa "ciao"

Se incorporo quanto segue in HORDER.ascx

<%: ViewData.Count() %>

Ottengo l'output "0".Qualsiasi tentativo di ottenere i viewdata fallisce.

Tuttavia, se utilizzo EditorFor con un singolo elemento, funziona come previsto:Ho aggiunto FirstHorder al mio viewmodel, impostato come model.PEOPLE.HORDERS.First() quindi <%:Html.EditorFor(model => model.FirstOrder, new {fred="hello"})%> passa ciao come previsto.

COSÌ...esiste un modo per far funzionare EditorFor con dati aggiuntivi quando lo si chiama con una relazione uno-a-molti?

MODIFICARE:È stato suggerito altrove di utilizzare EditorFor in un ciclo ForEach contro i singoli HORDERS.Funziona (cioèi viewdata aggiuntivi vengono passati correttamente) ma alla fine ogni controllo reso dall'EditorFor ha lo stesso ID e nome anziché PEOPLE.HORDERS[n].field, il che non è desiderabile.

È stato utile?

Soluzione

Dopo tanto pasticcio sembra che non sia possibile farlo:Lo considero un bug nel framework.La soluzione alternativa è inserirlo nel viewdata prima della chiamata EditorFor.

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