我已经填充了一个视图包,并向其绑定了一个下拉列表。如下所示。
var countrylist = ctx.Countries.ToList();
ViewBag.countrylist = new SelectList(countrylist, "ID", "Name",2);
@Html.DropDownList("countrylist", (IEnumerable<SelectListItem>)ViewBag.countrylist, "-Select-")
以上,我想默认选择国家列表的第二项,因此我提到了值“ 2”作为ViewBag国家列表重载的最后一个参数。 但这不是默认情况下选择的项目。
但是,如果我将下拉列表名称更改为下面的其他名称
@Html.DropDownList("countrylist12345", (IEnumerable<SelectListItem>)ViewBag.countrylist, "-Select-")
然后默认情况下,它将在国家/地区列表中选择第二项。
请解释为什么会这样吗?
答案 0 :(得分:0)
您的整个视图很可能带有某些模型的强类型
@model YourNamespace.SomeModel
此模型的字段countrylist
具有一些值,默认情况下可能为0。并且由于此字段的名称与下拉列表本身的名称相同,因此此字段的值就是下拉列表用来确定默认选择的内容。更改下拉菜单的名称后,连接就消失了。
您可以做的是确保在countrylist
字段中为该用于强力键入视图的模型分配了一些值。例如,在控制器内部:
SomeModel model = new SomeModel();
model.countrylist = 2;
return View(model);