A passagem do modelo de dados para asp.net mvc EditorTemplates
-
21-09-2019 - |
Pergunta
ScottGu neste post texto do link mostra como se pode utilizar EditorTemplates para as coisas como um País DropDownList.A minha pergunta é como se pode passar uma lista dinâmica de Países para o EditorTemplate?
Solução
Você pode passar por isso Ver dados e Feed ViewData de e ActionFilter se os dados forem necessários com muita frequência (embora discutível seja um Anti-padrão).
Outras dicas
Melhor ainda, você torna a visão parcial digitada fortemente e passa o modelo para o editor para ajudante
@Html.EditorFor(m=>m.SelectedCountry, Model.AvailableCountries)
Provavelmente, a solução mais elegante é usar um atributo personalizado, você pode acessar os metadados do modelo usando: ViewData.modelmetadata.
por exemplo:
[Foreign(Type="DropDown", TableName="Countries")]
public int IdCountry { get; set; }
Onde o Foreigntribute é uma aula que você deve declarar e, posteriormente, use -a para criar seu modelo de editor.
Semelhante a @Benja resposta
Você também pode usar o [AdditionaMetaData(chave,valor)] atributo de uma forma semelhante, sem ter de definir o seu próprio atributo.A chave e o valor tem que ser cadeias de caracteres.
Dados adicionais podem ser obtidas no modo de exibição com:@ViewData.ModelMetadata.AdditionalValues["DropDownData"]