ASP.NET MVC列出所有用户

时间:2009-05-17 15:05:51

标签: c# asp.net-mvc asp.net-membership

我正在尝试显示所有用户的列表,但我不确定如何使用MVC模型进行此操作。

我可以通过Membership.GetAllUsers()方法获取所有用户的列表,但是如果我尝试将其传递给ActionResult的视图,我会被告知模型不可枚举。

5 个答案:

答案 0 :(得分:29)

您必须将View设置为接受MembershipUserCollection类型的对象

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<MembershipUserCollection>" %>

在你的行动中:

 public ActionResult GetUsers()
        {
            var users = Membership.GetAllUsers();
            return View(users);
        }  

然后你可以在你的视图中写下:

 <ul>
       <%foreach (MembershipUser user in Model){ %>

       <li><%=user.UserName %></li>

       <% }%>
</ul>

答案 1 :(得分:3)

在视图页面的顶部,您需要设置视图页面的类型。 IE:

在视图的顶部,在标记的第一行,您会看到如下内容:

Inherits="System.Web.Mvc.ViewPage"

将其更改为:

Inherits="System.Web.Mvc.ViewPage<MembershipUserCollection>"

或者您尝试传递给视图的任何类型。 “Model”对象现在将是MembershipUserCollection类型,您可以安全地迭代它。

答案 2 :(得分:0)

[编辑]具体来说,视图是什么样的(例如,它希望作为模型获得什么,如何解析集合等)。

你能发一些代码吗?我正在做类似的事情,但我没有遇到任何问题。

答案 3 :(得分:0)

听起来你需要让你的视图强烈输入视图。让您的观点来自ViewPage<MembershipUserCollection> ,而不仅仅是ViewPage。另一种解决方案是在您的视图中将Model转换为MembershipUserCollection:

<% var members = (MembershipUserCollection) ViewData.Model %>
<% foreach (MembershipUser user in members) { %>
       <%-- Do Stuff with the user --%>
<% } %>

答案 4 :(得分:0)

尝试使用asp.net应用程序对象

        string id = Session.SessionID.ToString();
        String[] users = new String[1000];
        users = (string[])Application["users"];
        int count=0;
        for (int d=0;1000 >d ;d++ )
        {
            if (users == null) { users = new String[1000]; }
            count = d;
            if (users[d] == null) { break; }
        }
        users[count] = id;
        Application["users"] = users;
        string[] usersTable = (string[])Application["users"];
        for (int d=0;1000 >d ;d++ )
        {
            if (usersTable[d] == null) { break; }
        Label1.Text += usersTable[d].ToString()+" | ";

添加到应用程序对象代码

        Application["users"] = users;

从应用对象中恢复

        string[] usersTable = (string[])Application["users"];

这会对你有所帮助