问题描述
我有一个下拉菜单,该下拉菜单工作得很好,但是必须进行编辑,因为我需要在第二张表上执行联接,并且我想到了以下内容。
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"),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());