C# mvc 4下拉列表选择默认值
我想在policyId=7的下拉列表中选择默认值,但它没有选择该值,我做错了什么 控制器:C# mvc 4下拉列表选择默认值,c#,asp.net-mvc,asp.net-mvc-4,razor,C#,Asp.net Mvc,Asp.net Mvc 4,Razor,我想在policyId=7的下拉列表中选择默认值,但它没有选择该值,我做错了什么 控制器: var pm = new ManagerClass(); IEnumerable<myClass> po = pm.GetDataFromDb(); IEnumerable<SelectListItem> Policies = new SelectList(po, "PolicyID", "PolicyName", new { PolicyID = 7 }); ViewBag.Po
var pm = new ManagerClass();
IEnumerable<myClass> po = pm.GetDataFromDb();
IEnumerable<SelectListItem> Policies = new SelectList(po, "PolicyID", "PolicyName", new { PolicyID = 7 });
ViewBag.Policies = Policies;
var pm=newmanagerclass();
IEnumerable po=pm.GetDataFromDb();
IEnumerable Policies=new SelectList(po,“PolicyID”,“PolicyName”,new{PolicyID=7});
ViewBag.Policies=策略;
视图:
@Html.DropDownListFor(m=>m.PolicyID,ViewBag.Policies作为IEnumerable,新的{@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
),因此在决定预选哪个元素时将使用它的值。这是因为它实际上没有选择选择列表中的值
首先,为了更好,将项目放在视图模型中以防止强制转换(这也是更好的做法):
那么,在您看来,请执行以下操作:
@Html.DropDownListFor(m => m.PolicyID, Model.Policies, new { @class = "dropdown-field"})
如果您有一个静态菜单:
1-创建以下类:
public static class StaticMenus
{
public static List<string> GetGridRowsCount()
{
List<string> result = new List<string>();
result.Add("3");
result.Add("5");
result.Add("10");
result.Add("20");
result.Add("25");
result.Add("50");
result.Add("100");
return result;
}
}
3-将以下代码添加到视图中:
@Html.DropDownList("MainGridRowsCount", ViewData["RowsCountList"] as SelectList)
在“编辑”页面上,此功能正常,但在“添加”页面上,此功能无效。我给模型的id也在添加页面,就像你正在做的。我不知道你在说什么编辑和添加页面。这对我来说一直很有效。显示一个完整的示例,允许重现问题,这将有助于更好地理解您的场景。@DarinDimitrov我看到很多问题,当人们将SelectList
放在ViewBag
中时,它无法选择。不管是选角还是其他什么,但补救方法通常只是在视图模型中粘贴下拉列表。对不起,这是我的错误,我没有传递模型参数视图(“ViewName”,viewModel);我只是在使用这个视图(“视图名”)@Mattytommo我给你打分,你的回答也很有帮助。
@Html.DropDownListFor(m => m.PolicyID, Model.Policies, new { @class = "dropdown-field"})
public static class StaticMenus
{
public static List<string> GetGridRowsCount()
{
List<string> result = new List<string>();
result.Add("3");
result.Add("5");
result.Add("10");
result.Add("20");
result.Add("25");
result.Add("50");
result.Add("100");
return result;
}
}
ViewData["CountryList"] = new SelectList(StaticMenus.GetGridRowsCount(),"10");
@Html.DropDownList("MainGridRowsCount", ViewData["RowsCountList"] as SelectList)