我有一个下拉菜单,该下拉菜单工作得很好,但是必须进行编辑,因为我需要在第二张表上执行联接,并且我想到了以下内容。
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
以外的任何数据。我已经从其他问题中采取了步骤,但是我不能动摇这个问题。
如果我能知道丢失了什么,请感谢。
致谢
答案 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());