以下链接介绍了编辑器模板:http://weblogs.asp.net/scottgu/archive/2009/07/31/asp-net-mvc-v2-preview-1-released.aspx
我想知道的是,如果我有一个下拉列表的编辑器模板,初始值是如何设置的?
我有一个下拉菜单,我使用的是Html.EditorFor(c => c.Country,“CountryDropDown”)
但它始终默认为列表中的第一个选定项目...任何想法?
答案 0 :(得分:0)
我认为,您需要创建一个viewdata,或创建一个viewmodel来包含传递到下拉列表的选择列表。例如,在你的控制器动作中,你应该这样做:
//get your item for editing here i.e named itemToEdit
//get your country collection here
ArrayList countryList=New ArrayList;
foreach (Country c In YourCountryCollection)
{ countryList.Add(New With {.Item = c.CountryName, .value = c.CountryID})
}
Viewdata("CountryList")=New SelectList(countryList, "Value", "Item", itemToEdit.countryID)}
现在在您看来,您应该使用以下内容,而不是使用html.editorfor: Html.Editor(“CountryLis”,“CountryDropDown”)
这应该使用所选值设置下拉列表。 希望这有帮助。