代码之家  ›  专栏  ›  技术社区  ›  user441058

mvc LinqToSql为下拉列表添加行“Select User”

  •  1
  • user441058  · 技术社区  · 14 年前

    我是新来林克的。我在网上找了又找,什么都找不到。我有一个Linq查询,我想在将其传递到下拉列表之前在顶部插入一行(“Select User”)。我一直在尝试使用Union,但现在没有用(它一直告诉我我的对象不支持Union方法)。在尝试插入行之前,我的代码非常简单。

        public SelectList DropDown_Users()
    
        {
            var context = new VivarianDataContext();
    
            var query = from t in context.AspnetUsers
                        select new { t.UserId, t.LastName };
    
            list = new SelectList(query.AsEnumerable(), "UserId", "LastName");
            return list;
        }
    

    http://magicode.wordpress.com/2009/08/20/inserting-an-item-in-iqueryable-object-using-union-method-and-linq/

    我试着用下面的代码实现它,但是它不能编译。

        public SelectList DropDown_Users()
        {
            SelectList list;
    
            //get the original data          
           var context = new SQL2005633131VivarianDataContext();
           var query = from t in context.AspnetUsers
    
            select new { t.UserId, t.LastName };
    
            //create a dummy table with an empty row
            var AllUsers = new List<AspnetUsers>();
            var BlankUser = new AspnetUsers()
                {UserId=System.Guid.Empty, LastName="Select One"};
            AllUsers.Add(BlankUser);   
    
            //use Union to join the data - ERRORS HERE - doesn't support Union
           var newTable = AllUsers.Union(query);
    
    
            list = new SelectList(newTable.AsEnumerable(), "UserId", "LastName");
            return list;
        }
    

    太累了,我快瞎了。有什么帮助吗?

    1 回复  |  直到 12 年前
        1
  •  0
  •   Community CDub    7 年前

    您不需要触摸查询结果。您可以在dropdownlist中添加默认选项“selectuser”。

    试试这个:

    How can I add an item to a SelectList in ASP.net MVC