选择mvc 4下拉默认值

我想在下拉列表中选择默认值,其中policyId = 7但它没有选择该值,我做错了什么?

控制器:

var pm = new ManagerClass(); IEnumerable po = pm.GetDataFromDb(); IEnumerable Policies = new SelectList(po, "PolicyID", "PolicyName", new { PolicyID = 7 }); ViewBag.Policies = Policies; 

视图:

 @Html.DropDownListFor(m => m.PolicyID, ViewBag.Policies as IEnumerable, new { @class = "dropdown-field"}) 

只需将视图模型上的PolicyID属性设置为您要预选的值:

 var pm = new ManagerClass(); var po = pm.GetDataFromDb(); ViewBag.Policies = new SelectList(po, "PolicyID", "PolicyName"); viewModel.PolicyID = 7; return View(viewModel); 

由于DropDownList绑定到PolicyID属性( m => m.PolicyID ),因此在决定要预选哪个元素时将使用其值。

这是因为它实际上并没有选择SelectList的值。

首先,为了使它更好,将项目放在视图模型中以防止强制转换(这也是更好的做法):

 public class MyModel { public int PolicyID { get; set; } public List Policies { get; set; } //rest of your model } 

然后填充它:

 var model = new MyModel(); model.Policies = po .Select(p => new SelectListItem { Text = p.PolicyName, Value = p.PolicyID.ToString(), Selected = p.PolicyID == currentPolicyId //change that to whatever current is }) .ToList(); 

然后在你看来,做:

 @Html.DropDownListFor(m => m.PolicyID, Model.Policies, new { @class = "dropdown-field"}) 

这是DropDownList:

控制器:

List FieldListItems = new List();

FieldListItems.Add(new SelectListItem {Text =“Project ID”,Value =“Project_ID”});

FieldListItems.Add(new SelectListItem {Text =“Project Name”,Value =“Project_Name”});

ViewBag.SearchByList = new SelectList(FieldListItems,“Value”,“Text”,selectedValue:Project_ID);

风景:

排序方式:@ Html.DropDownList(“sortOrder”,(SelectList)ViewBag.SortingByList)

您可以将控制器中的selectedValue更改为您想要的项目作为默认值

如果你有一个静态菜单:

1-创建以下类:

 public static class StaticMenus { public static List GetGridRowsCount() { List result = new List(); result.Add("3"); result.Add("5"); result.Add("10"); result.Add("20"); result.Add("25"); result.Add("50"); result.Add("100"); return result; } } 

2-将以下代码添加到您的控制器:

 ViewData["CountryList"] = new SelectList(StaticMenus.GetGridRowsCount(),"10"); 

3-将以下代码添加到您的视图中:

 @Html.DropDownList("MainGridRowsCount", ViewData["RowsCountList"] as SelectList)