我有一个包含十年(从2010年到2020年)的DropDownList,如下所示:
var YearList = new List<int>(Enumerable.Range(DateTime.Now.Year - 5,((DateTime.Now.Year + 3) - 2008) + 1)); ViewBag.YearList = YearList;
但这是我的问题,我希望选择一个默认值,并在我提交信息时保留此值,并希望使用类型List< SelectListItem>因为它更实用.
一旦进入这种类型,我将简单地这样做以保持选定的值:
foreach (SelectListItem item in list) if (item.Value == str) item.Selected = true;
我怎样才能转换我的List< int>到列表< SelectListItem> ?
解决方法
尝试使用Linq进行转换:
List<SelectListItem> item = YearList.ConvertAll(a => { return new SelectListItem() { Text = a.ToString(),Value = a.ToString(),Selected = false }; });
然后该项将是SelectListItem的列表