1

リストボックスにすべてのASP.NETユーザーが含まれるページを作成しようとしています。

ただし、Html.Listboxにユーザーのリストを受け入れさせるには多くの問題があります。

私はこれをやってみました:

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

そしてこれに似た無数の他のアプローチ。また、コントローラーには次のようなメソッドがあります。

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

        membershipusers = Membership.GetAllUsers();

        return View(membershipusers);
    }

ユーザーのリストを作成できるようですが、リストボックスにそのリストを表示する方法がわかりません。

誰かがここで私を助けてくれることを願っています。

4

1 に答える 1

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) %>
于 2012-04-12T06:37:42.190 に答える