【问题标题】:How to add Item based on ID to List and Bind to dropdownlist in Asp.net MVC如何将基于 ID 的项目添加到列表并绑定到 Asp.net MVC 中的下拉列表
【发布时间】:2014-06-20 12:49:21
【问题描述】:

我有一个使用 Linq 根据客户 ID 获取项目名称和 ID 的方法

    public SelectList GetClientProjects(int clientId){

     IEnumerable<SelectListItem> clientProjectsList = 
        (from client in res.CLIENT
         join clientProj in res.CLIENT_PROJECT
         on client.ID equals clientProj.CLIENT_ID
         join project in res.PROJECT
         on clientProj.PROJ_ID equals project.ID
         where client.IS_DELETED == "N" && clientProj.IS_DELETED
                   == "N" && project.IS_DELETED 
                   == "N" && client.ID == clientId
         select project).AsEnumerable().Select(projs => new SelectListItem() {
                                  Text=projs.NAME, Value=projs.ID.ToString() });
        return new SelectList(clientProjectsList, "Value", "Text", PROJ_ID);
    }

现在,我通过以下查询获取客户 ID

var clientDetails = reslandentity.CLIENT.
Where(m => m.SUBSCRIBER_ID == userid).ToList();

由此,如何获取项目名称和项目 ID,以及如何使用 ProjectId 和填充项目名称绑定到下拉列表。

【问题讨论】:

    标签: c# asp.net-mvc linq list


    【解决方案1】:
     var clientDetails = reslandentity.CLIENT.Where(m => m.SUBSCRIBER_ID == userid);
     List<SelectListItem> items = new List<SelectListItem>();
     foreach (var item in clientDetails)
     {
        var clientProjectsList =
              (from client in reslandentity.CLIENT
               join clientProj in reslandentity.CLIENT_PROJECT
               on client.ID equals clientProj.CLIENT_ID
               join project in reslandentity.PROJECT
               on clientProj.PROJ_ID equals project.ID
               where client.IS_DELETED == "N" && clientProj.IS_DELETED
                         == "N" && project.IS_DELETED
                         == "N" && client.ID == item.ID
               select project).FirstOrDefault();
                if (clientProjectsList != null)
                {
                    items.Add(new SelectListItem() { Text = clientProjectsList.NAME, Value = clientProjectsList.ID.ToString() });
                }
     }
     SelectList list=new SelectList(items,"Value","Text",model.PROJ_ID);
     ViewBag.ProjectsList = list;
    

    绑定到下拉列表,如

    @Html.Dropdownlistfor(m=>m.Proj_Id,(SelectList)ViewBag.ProjectsList) 
    

    希望你得到预期的结果。

    【讨论】:

      猜你喜欢
      • 2010-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-15
      • 1970-01-01
      • 2015-06-15
      相关资源
      最近更新 更多