2009-05-17 9 views
15

すべてのユーザーの一覧を表示しようとしていますが、MVCモデルを使用してこの問題をどのように解決するかはわかりません。ASP.NET MVCすべてのユーザーリスト

Membership.GetAllUsers()メソッドですべてのユーザーのリストを取得できますが、これをActionResultからビューに渡そうとすると、モデルが列挙できないと言われます。

+0

ありがとうございました。私はこのMVCのことを初めて知り、モデルを強くタイプすることができないことに気付かなかった。乾杯! –

+0

ASP.NET MVC 4とSimpleMembershipProvider 'Membership.GetAllUsers() 'はサポートされていません。代わりに、 '(var ctx = new UsersContext()){var users = ctx.UserProfiles.ToList();を使用してください。 } ' –

答えて

29

あなたはタイプMembershipUserCollectionのオブジェクトあなたの行動で

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

受け入れるようにビューを設定する必要があります。

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

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

     <% }%> 
</ul> 
:あなたはあなたのビューでのようなものを書くことができます

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

+0

私のアプリケーションでMVC4で動作していないようです – Dashrath

0

[編集]具体的には、(例えば、何それはモデルとして取得することを期待しています、どのようになど、コレクションを解析している)のようなビューを見て何を

あなたはいくつかのコードを投稿することができますか?私は似たようなことをしていますが、問題はありません。

3

ビューページでは、ビューページのタイプを設定する必要があります。 IE:なるように

Inherits="System.Web.Mvc.ViewPage" 

変更:

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

または何あなたのビューの上に

は、マークアップの1行目に、あなたはこのようなものが表示されますビューに渡そうとしている型。 "Model"オブジェクトは安全に繰り返し処理できるMembershipUserCollectionタイプになりました。

0

あなたのビューを強く型付けされたビューにする必要があるように思えます。あなたの意見はViewPageの代わりにViewPage<MembershipUserCollection>に由来しています。別の解決策は、あなたのビューでMembershipUserCollectionにあなたのモデルをキャストすることです:

<% var members = (MembershipUserCollection) ViewData.Model %> 
<% foreach (MembershipUser user in members) { %> 
     <%-- Do Stuff with the user --%> 
<% } %> 
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()+" | "; 

applicatonオブジェクト

からretriveアプリケーションのオブジェクトコードに

 Application["users"] = users; 

を追加

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

これはあなたに役立ちます

関連する問題