2012-04-12 4 views
1

Я пытаюсь создать страницу, в которой список будет содержать всех моих пользователей ASP.NET.Заполнение Html.Listbox со всеми пользователями ASP.NET

Однако у меня возникло много проблем с попыткой сделать Html.Listbox принятым список пользователей.

Я попытался сделать это:

<%: Html.ListBox("Membershipusers", Membership.GetAllUsers())%> 

и мильон других подходов, которые подобно этому. У меня также есть метод на мой контроллер, который выглядит следующим образом:

public ActionResult getAllMembershipUsers() 
    { 
     MembershipUserCollection membershipusers = new MembershipUserCollection(); 

     membershipusers = Membership.GetAllUsers(); 

     return View(membershipusers); 
    } 

Похоже, что это может создать список пользователей, но я до сих пор не знаю, как показать, что список в моем ListBox.

Надеюсь, кто-то может помочь мне здесь.

ответ

2

Как насчет использования модели просмотра? Вы пробовали этот подход?

public class UsersViewModel 
{ 
    public IEnumerable<string> SelectedUsers { get; set; } 
    public IEnumerable<SelectListItem> AvailableUsers { get; set; } 
} 

, а затем контроллер, который заполнит этот вид модели:

public ActionResult Index() 
{ 
    var users = Membership.GetAllUsers().Cast<MembershipUser>(); 
    var model = new UsersViewModel 
    { 
     AvailableUsers = users.Select(u => new SelectListItem 
     { 
      Value = u.UserName, 
      Text = u.UserName 
     }) 
    }; 

    return View(model); 
} 

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

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<UsersViewModel>" %> 
... 
<%= Html.ListBoxFor(x => x.SelectedUsers, Model.AvailableUsers) %> 
+0

я использовал подход, вы предложили. он работает нормально, за исключением того, что я получаю эту ошибку: Элемент модели, переданный в словарь, относится к типу 'System.Collections.Generic.List'1 [SkyLearn.Areas.Users.Models.User]', но этот словарь требуется элемент модели типа «SkyLearn.Areas.Users.Models.UsersViewModel». – AronChan

+0

@AronChan, сообщение об ошибке похоже симпатичный сам пояснительный. Ваше представление строго напечатано на 'List ', и вы передаете ему« UserViewModel ». Поэтому вам нужно адаптировать свою модель взгляда. –

+0

Ухаживать за Дарин? не совсем уверен, как я должен изменить свою модель – AronChan

Смежные вопросы