从选择列表查询填充下拉列表会在下拉列表

时间:2020-10-26 16:26:57

标签: c# linq

我有一个下拉菜单,该下拉菜单工作得很好,但是必须进行编辑,因为我需要在第二张表上执行联接,并且我想到了以下内容。

ViewBag.Type = new SelectList(from r in db.Departments
                              join s in db.Payment on r.departmentId equals s.deparmentId_FK
                              where r.myID == myID
                              select new SelectListItem
                                         {
                                              Value = s.paymentTypeId.ToString(),
                                              Text = s.name
                                         }).ToList();

在我看来

@Html.DropDownList("Type", (IEnumerable<SelectListItem>)ViewBag.Type, "--- Tous ---")
@Html.DropDownList("Type", ViewBag.Type as IEnumerable<SelectListItem>, "Choose Type", new { @class = "form-control listbox" })
@Html.DropDownList("Type", new SelectList(ViewBag.Type, "Value", "Text"), "Choose Type", new { @class = "form-control listbox" })`

遇到的问题是,尽管对项目进行了正确过滤,但我无法获得除System.Web.Mvc.SelectListItem以外的任何数据。我已经从其他问题中采取了步骤,但是我不能动摇这个问题。

如果我能知道丢失了什么,请感谢。

致谢

1 个答案:

答案 0 :(得分:0)

尝试仅选择一个新的匿名对象。根据您使用的Entity Framework版本,问题可能在于它正在尝试评估服务器或客户端上的Select语句。很显然,它正在执行哪一个操作都不喜欢尝试选择新的SelectListItem。下面的示例。

ViewBag.Type = new SelectList((from r in db.Departments
                              join s in db.Payment on r.departmentId equals s.deparmentId_FK
                              where r.myID == myID
                              select new
                                         {
                                              Value = s.paymentTypeId.ToString(),
                                              Text = s.name
                                         }).ToList());
相关问题