mvc LinqToSql为下拉列表添加“选择用户”行

时间:2010-09-07 03:01:26

标签: asp.net-mvc drop-down-menu

我是Linq的新手。我搜索并搜索了网络以寻找解决方案,但找不到任何东西。我有一个Linq查询,我想在我将其传递到下拉列表之前插入一行(“选择用户”)到顶部。我一直在尝试使用联盟,但现在可以使用(它一直告诉我,我的对象不支持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 个答案:

答案 0 :(得分:0)

您无需触摸查询结果。您可以在下拉列表中添加默认选项“选择用户”。

试试这个:

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