我刚刚使用MVC和Razor开始了我的项目。现在,在将来自数据库的数据绑定到下拉列表时,我遇到了一个问题。请参考下面的代码:
专业化模型:
public class SpecializationModel
{
[Display(Name = "SpecializationID")]
public string SpecializationID { get; set; }
[Display(Name = "SpecializationDescription")]
public string SpecializationDescription { get; set; }
public IEnumerable<SelectListItem> Items { get; set; }
public int SelectedSpecializationID { get; set; }
}
控制器:
public ActionResult Physicians()
{
SpecializationManager spec = new SpecializationManager();
List<Specialization> SpecializationList = spec.GetAllSpecialization();
var obj = new SpecializationModel();
obj.Items = new[]
{
foreach(var x in SpecializationList)
{
new SelectListItem { Value = x.SpecializationID.ToString(), Text = x.SpecializationDescription };
}
};
return View(obj);
}
我有这个包含LINQ查询的管理器,用于从数据库中提取数据。
我在控制器上遇到问题。其中foreach
语法上的错误点为Invalid expression term foreach
任何人都可以指出我正确的方向吗?非常感谢!
编辑:
我现在有了这个代码,而且在foreach部分没有错误(感谢下面的帖子,我结合了上面的内容)。但是,我似乎无法使最后一行工作。它会产生关于隐式转换的错误:
var items = new List<SelectListItem>();
foreach (var x in SpecializationList)
{
items.Add(new SelectListItem { Value = x.SpecializationID.ToString(), Text = x.SpecializationDescription });
}
obj.Items = items.ToList();
请帮帮我。谢谢:))
答案 0 :(得分:1)
你不能把foreach放在构造函数中,试试:
var items = new List<SelectListItem >();
foreach(var x in SpecializationList)
{
items.add(new SelectListItem { Value = x.SpecializationID.ToString(), Text = x.SpecializationDescription });
}
obj.Items = items;
<强>被修改强>