我有以下Action方法,其中有一个带字符串列表的viewBag:-
public ActionResult Login(string returnUrl)
{
List<string> domains = new List<string>();
domains.Add("DomainA");
ViewBag.ReturnUrl = returnUrl;
ViewBag.Domains = domains;
return View();
}
在 View 上,我试图构建一个下拉列表,以显示viewBag字符串,如下所示:
@Html.DropDownList("domains",(SelectList)ViewBag.domains )
但是我遇到了以下错误:-
因此,有人能容忍为什么我不能填充of的下拉列表吗?
谢谢
最佳答案
因为DropDownList
不接受字符串列表。它接受IEnumerable<SelectListItem>
。将您的字符串列表转换为该列表是您的责任。不过,这很容易:
domains.Select(m => new SelectListItem { Text = m, Value = m })
然后,您可以将其提供给
DropDownList
:@Html.DropDownList("domains", ((List<string>)ViewBag.domains).Select(m => new SelectListItem { Text = m, Value = m }))