Я надеюсь, что кто-то может объяснить, что происходит с этим.
У меня есть несколько выпадающих списков на моей странице, которые имеют одинаковый набор элементов (null, True, False).я не могу понять, как и почему, когда страница отображается, я вижу, Razor выбирает предыдущий выпадающий элемент, выбранный для текущего, если значение равно нулю.
Вот мой код:
public class DdlViewModel
{
public bool? Field1 { get; set; }
public bool? Field2 { get; set; }
public bool? Field3 { get; set; }
public bool? Field4 { get; set; }
public bool? Field5 { get; set; }
public IEnumerable<SelectListItem> YesNoBlank { get; set; }
}
public ActionResult DDl()
{
var selectListItems = new List<SelectListItem>
{
new SelectListItem {Value = null, Text = ""},
new SelectListItem {Value = "True", Text = "Yes"},
new SelectListItem {Value = "False", Text = "No"},
};
var viewModel = new DdlViewModel();
viewModel.Field2 = true;
viewModel.Field4 = false;
viewModel.YesNoBlank = selectListItems;
return View(viewModel);
}
, а вот вид;
<body>
<div>
Field 1 @Html.DropDownListFor(b => b.Field1, Model.YesNoBlank)
<br />
Field 2 @Html.DropDownListFor(b => b.Field2, Model.YesNoBlank)
<br />
Field 3 @Html.DropDownListFor(b => b.Field3, Model.YesNoBlank)
<br />
Field 4 @Html.DropDownListFor(b => b.Field4, Model.YesNoBlank)
<br />
Field 5 @Html.DropDownListFor(b => b.Field5, Model.YesNoBlank)
</div>
</body>
- вот результат, который я действительно ожидаю, что поля 3 и 5 будутпусто как для поля 1;
![](https://i.stack.imgur.com/JfYCv.png)
ОБНОВЛЕНИЕ
Согласно ответу Тецуя Ямамото, я изменил свой код, как показано ниже,Это также сделало свое дело.и не требует никаких изменений на мой взгляд.
public class DdlViewModel
{
...
public SelectList YesNoBlank { get; set; }
}
public ActionResult DDl()
{
var selectListItems = new SelectList(new List<SelectListItem>
{
new SelectListItem {Value = null, Text = ""},
new SelectListItem {Value = "True", Text = "Yes"},
new SelectListItem {Value = "False", Text = "No"},
}, "Value", "Text");
...
}