ScottGu在这篇文章link text中展示了如何利用EditorTemplates来处理诸如Country DropDownList之类的事情。我的问题是如何将动态的国家/地区列表传递给EditorTemplate?
答案 0 :(得分:1)
最优雅的解决方案可能是使用自定义属性,您可以稍后使用以下方法访问模型元数据:ViewData.ModelMetadata。
e.g:
[Foreign(Type="DropDown", TableName="Countries")]
public int IdCountry { get; set; }
其中ForeignAttribute是您必须声明的类,稍后使用它来构建编辑器模板。
答案 1 :(得分:1)
更好的是,您可以强制键入部分视图,并将模型传递给EditorFor帮助程序
@Html.EditorFor(m=>m.SelectedCountry, Model.AvailableCountries)
答案 2 :(得分:0)
您可以在ViewData中传递它并从ActionFilter提供ViewData,如果数据经常需要(尽管可以说它是anti-pattern)。
答案 3 :(得分:0)
与@ Benja的回答类似
您也可以以类似的方式使用[AdditionaMetaData(key,value)]属性,而无需定义自己的属性。键和值必须是字符串。
可以在视图中检索额外数据:@ ViewData.ModelMetadata.AdditionalValues [“DropDownData”]