1

我刚刚开始使用 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();

请帮帮我。谢谢 :)

4

1 回答 1

1

yopu 不能在构造函数中放置 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;

已编辑

于 2012-06-27T13:05:53.580 回答