Domanda

ScottGu in questo post testo del collegamento mostra come è possibile utilizzare EditorTemplates per cose come un Country DropDownList.La mia domanda è: come si può passare un elenco dinamico di Paesi all'EditorTemplate?

È stato utile?

Soluzione

È possibile passare in Viewdata e mangimi Viewdata da e ActionFilter se i dati è richiesto molto spesso (anche se discutibile è un anti-modello ).

Altri suggerimenti

Ancora meglio a fare la vista parziale fortemente tipizzato e passare il modello per l'helper EditorFor

@Html.EditorFor(m=>m.SelectedCountry, Model.AvailableCountries)

Probabilmente la soluzione più elegante è utilizzare un attributo personalizzato, potrai successivamente accedere ai metadati del modello utilizzando:ViewData.ModelMetadata.

per esempio:

 [Foreign(Type="DropDown", TableName="Countries")]
   public int IdCountry { get; set; }

dove ForeignAttribute è una classe che devi dichiarare e successivamente utilizzarla per creare il modello dell'editor.

Simile alla risposta di @Benja

Puoi anche utilizzare l'attributo [AdditionaMetaData(key,value)] in modo simile senza dover definire il tuo attributo.Chiave e valore devono essere stringhe.

I dati aggiuntivi possono essere recuperati nella vista con:@ViewData.ModelMetadata.AdditionalValues["DropDownData"]

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