1

我有这个代码构造一个选择列表作为布尔响应

var responseList = new List<SelectListItem>();
responseList.Add(new SelectListItem { Text = "Going", Value = bool.TrueString});
responseList.Add(new SelectListItem { Text = "Not Going", Value = bool.FalseString });
ViewData[ViewDataKeys.ResponseTo] = vatOptionList;

在我看来,我使用下面的下拉列表助手。

@Html.DropDownListFor(m => m.ResponseTo, (IEnumerable<SelectListItem>)ViewData[ViewDataKeys.ResponseTo], "--Select--")

这是我的模型类的属性:

[Display(Name = "Response To")]
public bool ResponseTo { get; set; }

我的问题是我的 model.ResponseTo 的值是什么,下拉列表总是选择可选值。

我尝试使用复选框助手,但令人惊讶的是,它似乎也没有被选中,尽管当我检查元素时,复选框值为“true”

我尝试使用文本框助手,它显示了一个“真实”文本,我认为我的模型具有价值,它只是没有绑定到下拉列表或复选框。我需要使用下拉列表。我错过了什么?

4

1 回答 1

4

刚刚测试了这个,它有效:

在您的操作方法中:

var selectListItems = new List<SelectListItem>();
selectListItems.Add(new SelectListItem { Text = "Going", Value = bool.TrueString });
selectListItems.Add(new SelectListItem { Text = "Not going", Value = bool.FalseString });
ViewBag.MySelectList = new SelectList(selectListItems, "Value", "Text", viewModel.IsGoing);

在您看来:

@Html.DropDownList("IsGoing", (SelectList) ViewBag.MySelectList)
于 2011-10-13T08:32:36.160 回答