2009-05-17 2 views
15

Tôi đang cố gắng hiển thị danh sách tất cả người dùng nhưng không chắc chắn về cách sử dụng mô hình MVC.Danh sách ASP.NET MVC Tất cả người dùng

Tôi có thể có danh sách tất cả người dùng qua phương thức Membership.GetAllUsers() tuy nhiên nếu tôi cố chuyển qua chế độ xem từ ActionResult, tôi được thông báo rằng Mô hình không được liệt kê.

+0

Cảm ơn mọi người đã trợ giúp. Tôi mới làm quen với công cụ MVC này và không nhận ra rằng tôi có thể đánh mạnh Model. Chúc mừng !! –

+0

Với ASP.NET MVC 4 và SimpleMembershipProvider 'Membership.GetAllUsers()' không được hỗ trợ. Thay vì sử dụng, 'using (var ctx = new UsersContext()) {var users = ctx.UserProfiles.ToList(); } ' –

Trả lời

29

Bạn cần phải thiết lập các View để chấp nhận một đối tượng kiểu MembershipUserCollection

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

Trong hành động của bạn:

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

sau đó bạn có thể viết theo quan điểm của một cái gì đó của bạn như:

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

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

     <% }%> 
</ul> 
+0

nó dường như không hoạt động trong MVC4 trong ứng dụng của tôi – Dashrath

0

[Chỉnh sửa] Cụ thể, những gì hiện quan điểm cái nhìn tương tự (ví dụ những gì nó mong đợi để có được như mô hình, làm thế nào bạn phân tích các bộ sưu tập, vv)

Bạn có thể gửi một số mã? Tôi đang làm một cái gì đó tương tự, nhưng không có vấn đề gì.

3

Trong trang xem của bạn, trên cùng, bạn cần phải đặt loại trang xem. IE:

Trên đỉnh Xem bạn, trong dòng đầu tiên của các đánh dấu, bạn sẽ thấy một cái gì đó như thế này:

Inherits="System.Web.Mvc.ViewPage" 

Thay đổi đó là:

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

hoặc bất cứ điều gì loại bạn đang cố chuyển đến chế độ xem. Đối tượng "Model" bây giờ sẽ thuộc loại MembershipUserCollection mà bạn có thể lặp lại một cách an toàn.

0

Có vẻ như bạn cần chế độ xem được nhập mạnh mẽ. Có chế độ xem của bạn xuất phát từ ViewPage<MembershipUserCollection> thay vì chỉ ViewPage. Một giải pháp khác là để đúc mẫu của bạn để MembershipUserCollection theo quan điểm của bạn:

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

Hãy thử tượng ứng dụng 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()+" | "; 

thêm vào mã đối tượng ứng dụng

 Application["users"] = users; 

retrive từ đối tượng applicaton

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

điều này sẽ giúp bạn