使用布尔值而不是字符串的 SelectListItem

SelectListItem with Boolean values, instead of strings

无法将 SelectListItem.Value 属性 从 string 转换为 Boolean。如何创建值为 true/false 的简单 Yes/No 选项?

private List<SelectListItem> getYNOptions()
        {
            List<SelectListItem> yn = new List<SelectListItem>();
            yn.Add(new SelectListItem() { 
                Text = "Yes",
                Value=true, // error
                Selected = false
            });
            yn.Add(new SelectListItem()
            {
                Text= "No",
                Value = false, // error
                Selected = false
            });
            return yn;
        } 

public ActionResult Index(){
    ViewBag.selectList = getYNOptions();
    return View();
}

查看

 @Html.DropDownListFor(model => model.YesOrNo, new SelectList(ViewBag.selectList,"Value","Text"), "-- Select --")

Value SelectListItem 的 属性 是 string 类型。您不能为其分配布尔值。您可以对布尔值使用 ToString() 调用。

new SelectListItem() { Text = "Yes",   Value=true.ToString(), Selected = false }

或者只使用字符串值

new SelectListItem() { Text = "Yes", Value="True", Selected = false  }