我有一个下拉列表,它运行得很好,但必须进行编辑,因为我需要在第二个表上执行联接,我得出了以下结果。
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
之外的任何数据。我已经从其他问题中采取了步骤,但我无法回避这个问题。
如果我能知道遗漏了什么,我将不胜感激。
问候
尝试只选择一个新的匿名对象。根据您使用的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());