将数据绑定到DropDownList MVC Razor

时间:2012-06-27 12:59:53

标签: database asp.net-mvc razor drop-down-menu bind

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

请帮帮我。谢谢:))

1 个答案:

答案 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;

<强>被修改