具有布尔值而不是字符串的SelectListItem

Dyl*_*ski 0 asp.net-mvc selectlist selectlistitem html.dropdownlistfor

无法将SelectListItem.Value属性从转换stringBoolean。如何创建一个简单的是/与价值无选项true/ false

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();
}
Run Code Online (Sandbox Code Playgroud)

视图

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

Shy*_*yju 5

Value的属性为stringSelectListItem类型。您不能为其分配布尔值。您可以在布尔值上使用该调用。ToString()

new SelectListItem() { Text = "Yes",   Value=true.ToString(), Selected = false }
Run Code Online (Sandbox Code Playgroud)

或者只是使用一个字符串值

new SelectListItem() { Text = "Yes", Value="True", Selected = false  }
Run Code Online (Sandbox Code Playgroud)