Передача данных модели в asp.net mvc EditorTemplates - PullRequest
0 голосов
/ 17 января 2010

ScottGu в этом посте текст ссылки показывает, как можно использовать EditorTemplates для таких вещей, как Country DropDownList. У меня вопрос, как можно передать динамический список стран в шаблон Editor?

Ответы [ 4 ]

1 голос
/ 19 января 2010

Вероятно, наиболее элегантным решением является использование настраиваемого атрибута. Позже вы можете получить доступ к метаданным модели, используя: ViewData.ModelMetadata.

Например:

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

где ForeignAttribute - это класс, который вы должныобъявите, а затем используйте его для создания шаблона редактора.

1 голос
/ 14 сентября 2011

Еще лучше, если вы сделаете частичный вид строго типизированным и передадите модель в помощник EditorFor

@Html.EditorFor(m=>m.SelectedCountry, Model.AvailableCountries)
0 голосов
/ 15 ноября 2012

Аналогично ответу @ Бенджи

Аналогичным образом вы можете использовать атрибут [AdditionaMetaData (key, value)], не задавая собственный атрибут. Ключ и значение должны быть строками.

Дополнительные данные можно получить в представлении с помощью: @ ViewData.ModelMetadata.AdditionalValues ​​["DropDownData"]

0 голосов
/ 17 января 2010

Вы можете передать его в ViewData и передать ViewData из и ActionFilter, если данные требуются очень часто (хотя можно утверждать, что это анти-шаблон ).

...