如何使用ASP.NET MVC中的视图设置DropDownList的不同预配置的默认值?(How t

2019-10-31 10:51发布

我已经创建了具有配置2个键海誓山盟,例如能力的程序:

Key 1 = key a,
key 2 = key b,
key 3 = key c,
etc

用下面的配置页面:

当按下提交按钮它就会发送配置到数据库:

这工作得很好,但现在我想为配置创建一个编辑页面。 在这种配置页我使用从数据库中获取的配置,并把此在的WebGrid查询:

查询:

var v = (from a in dbProducts.MapperConfigs
                 where
                    a.MappingID.Equals(id)
                 select a
                   );

这将让整个配置,对的WebGrid左侧我只是把钥匙:KEY1,KEY2,KEY3,KEY4等,但在右侧我希望用户有选择地连接到KEY1哪个键, KEY2,KEY3等,因此我使用一个下拉列表,然而,这下拉列表获取通过用下面的代码SelectListItem填充:

控制器:

 foreach (var item in v)
 {
      list.Add(item.OtherKey, item.OtherKeyType);
 }

 ViewBag.OtherKeysList = new SelectList(list, "OtherKey");

在的WebGrid查看:

 grid.Column(columnName: "OtherKey", header: "OtherKey", format: @<text>@Html.DropDownList("OtherKey", (IEnumerable<SelectListItem>)ViewBag.OtherKeysList, new { @class = "extra-class" })</text>)))

这将导致把所有的钥匙,科亚,KEYB,KeyC在一个DropDownList但配置不。 我试图让我的下拉列表中的默认值之前配置。

有没有人有任何建议,如何实现这一目标?

提前致谢

Answer 1:

你行

    ViewBag.OtherKeysList = new SelectList(list, "OtherKey");

不行的,至于选择列表的构造函数的第二个参数是默认值。

当你正在使用的字典清单 (变量)为源你在字典中的的SelectedValue使用实际项目。

这会工作:

    ViewBag.OtherKeysList = new SelectList(list, list.Single(i => i.Key == "KeyB"));

其中,“KEYB”在这种情况下是被选择并保存在数据库中的关键。



文章来源: How to set different preconfigured default values for DropDownList in View using ASP.NET MVC?