MVC DropdownlistFor不还原为默认值null

时间:2019-01-03 10:59:07

标签: c# asp.net-mvc razor html.dropdownlistfor

我有一个页面,该页面将db表中另一页面上的控件设置为必需(-1),禁用(0)或可选(null)。

它们都使用与源相同的Viewbag参数。

这是下拉代码,重复了x次。

Json

StateList包含

    @Html.DropDownListFor(x=>x.Control1, (IEnumerable<SelectListItem>) ViewBag.StateList, "Optional", new {@class = "form-control"})
    @Html.DropDownListFor(x=>x.Control2, (IEnumerable<SelectListItem>) ViewBag.StateList, "Optional", new {@class = "form-control"})
    @Html.DropDownListFor(x=>x.Control3, (IEnumerable<SelectListItem>) ViewBag.StateList, "Optional", new {@class = "form-control"})
    @Html.DropDownListFor(x=>x.Control4, (IEnumerable<SelectListItem>) ViewBag.StateList, "Optional", new {@class = "form-control"})
    @Html.DropDownListFor(x=>x.Control5, (IEnumerable<SelectListItem>) ViewBag.StateList, "Optional", new {@class = "form-control"})

如果它们全部为空,则将正确加载,它们都显示为可选。

如果我将每一个都设置为必需或禁用,那么它也可以正常工作。

如果我将第一对设置为可选,并将数字3设置为required,而其余的则将其正确地保存为

    List<SelectListItem> states = new List<SelectListItem>();
    states.Add(new SelectListItem { Text = "Required", Value = "-1" });
    states.Add(new SelectListItem { Text = "Disabled", Value = "0" });
    ViewBag.StateList = states;

但是当它显示时,前两个是可选的,但其他所有都设置为我在控件3中设置的值,无论是必需的还是禁用的。

那应该显示为

可选,可选,必需,可选,可选等

显示为

可选,可选,必需,必需,必需。

有什么想法吗?

****编辑***

好吧,确定对Dropdownlist的绑定问题是... 我用

替换了它们
null,null,-1,null,null,etc

它可以按预期工作。...

不幸的是,这将一行代码转换为13。...我对此并不特别满意。...因此,希望此信息将有助于使用dropdownlist的预期用途来找到解决方案。...< / p>

0 个答案:

没有答案