Помогите с asp.net mvc SelecList, Html.dropdownList и linqtosql - PullRequest
2 голосов
/ 27 января 2010

У меня есть таблица пользователей, в ней есть идентификатор, имя, фамилия

У меня есть linq to sql class

Я хочу выпадающий список с идентификатором для значения и ИМЯ И ФИЛЬМ для текста .... как я могу это сделать?

ViewData["User_Id"] = new SelectList(UsersRepository.GetAll(), "Id", "Name");

работает просто отлично, но я хочу

ViewData["User_Id"] = new SelectList(UsersRepository.GetAll(), "Id", "Name "+" Last_Name");

что не работает ... помогите пожалуйста

Ответы [ 2 ]

1 голос
/ 27 января 2010

Этот элемент управления использует отражение, чтобы найти правильные свойства для dataText и dataValue. Вы не сможете добавить свойства вместе.

Вы можете создать анонимный тип.

Предполагается, что коллекция из базы данных выглядит примерно так:

    var testModelCollection = new List<TestModel>() { 
        new TestModel() { Id = 1, Name = "Bob", LastName = "Smith" },
        new TestModel() { Id = 2, Name = "Jack", LastName = "Thompson" }
    };

    var changedModelCollection = from t in testModelCollection
                                 select new {
                                     Id = t.Id,
                                     FullName = t.Name + " " + t.LastName
                                 };


    ViewData["User_Id"] = new SelectList(changedModelCollection, "Id", "FullName");

Ваше определение DropDownList в вашем представлении будет выглядеть примерно так:

<%= Html.DropDownList("Username", (SelectList)ViewData["User_Id"], "Select a User") %>
1 голос
/ 27 января 2010

Попробуйте использовать старый добрый LINQ.

var data = from u in UsersRepository.GetAll()
            select new {
               Id : u.Id,
               Name : string.Concat(u.Name, u.LastName)
            };
ViewData["User_Id"] = new SelectList(data, "Id", "Name");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...