将硬编码值和数据库值绑定到一个下拉列表中

时间:2012-05-24 05:57:16

标签: asp.net-mvc-3

我在C#asp.net MVC3 razor引擎中有一个下拉列表。 我需要从我的数据库中的一个表中将值加载到该下拉列表中,并且某些值是硬编码的。 所以我需要将两种值都放在一个下拉列表中。

我可以单独做。

这就是我的看法:

@Html.DropDownListFor(model => model.MyTransaction.Status, new MultiSelectList(ViewBag.MyStatusId, "ID", "Name"))

创建枚举的模型:

public enum Ntypes{
  halfday
  casual
}

我的控制器:

ViewBag.MyTransaction = db.LeaveTypes.ToList(); //get the table values to drop down

//然后我甚至可以分别获得硬编码值............

ViewBag.MyTansaction = (from NewLeaveTypes t in Enum.GetValues(typeof(Ntypes))
                                select new { ID = t, Name = t.ToString()).ToList();

但是无法将这两个值都放入一个下拉列表中。 Plzzzz帮助。

由于...........

1 个答案:

答案 0 :(得分:2)

您可以将两个列表连接在一起:

var nTypes = Enum
    .GetValues(typeof(Ntypes))
    .Select(t => new LeaveType { ID = t, Name = t.ToString())
    .ToList();
ViewBag.MyTransaction = db.LeaveTypes.ToList().Concat(nTypes);

然后在视图中:

@Html.DropDownListFor(
    model => model.MyTransaction.Status, 
    new SelectList(ViewBag.MyTransaction, "ID", "Name")
)