Передача данных модели в шаблоны EditorTemplates asp.net mvc
-
21-09-2019 - |
Вопрос
СкоттГу в этом посте текст ссылки показывает, как можно использовать EditorTemplates для таких вещей, как раскрывающийся список стран.Мой вопрос: как передать динамический список стран в EditorTemplate?
Решение
Вы можете передать его Просмотр данных и передавать ViewData из и ActionFilter, если данные требуются очень часто (хотя это спорно). антишаблон).
Другие советы
Еще лучше, если вы сделаете частичное представление строго типизированным и передадите модель помощнику EditorFor.
@Html.EditorFor(m=>m.SelectedCountry, Model.AvailableCountries)
Вероятно, самым элегантным решением является использование пользовательского атрибута. Позже вы сможете получить доступ к метаданным модели, используя:ВьюДанные.МодельМетаданные.
например:
[Foreign(Type="DropDown", TableName="Countries")]
public int IdCountry { get; set; }
где ForeignAttribute — это класс, который вы должны объявить, а затем использовать его для создания шаблона редактора.
Похоже на ответ @Benja
Вы также можете использовать атрибут [AdditionaMetaData(key,value)] аналогичным образом без необходимости определять собственный атрибут.Ключ и значение должны быть строками.
Дополнительные данные можно получить в представлении с помощью:@ViewData.ModelMetadata.AdditionalValues["DropDownData"]