0

これを理解するのに助けが必要です

私のコントローラーには

MembershipUserCollection usersObj = Membership.GetAllUsers();
IEnumerator<MembershipUserCollection> model = usersObj.GetEnumerator();
return PartialView(model );

IEnumerator object繰り返す必要がありますが、どのタイプのIEnumerator MembershipUserCollection.GetEnumerator()返品かわかりません。

IEnumeratorこれをビューに渡したいので、ここでこれを使用Enumeratorしますforeach

 @foreach (var membershipUser in Model.getEnumerator())
 { ... }
4

3 に答える 3

4

あなたの質問は、このコードが機能すると誤って想定しています。

@foreach (var membershipUser in Model.getEnumerator()) { ... }

実際、次のように書く必要があります。

@foreach (var membershipUser in Model) { ... }

それで、あなたの質問全体が議論の余地があります。コンパイラは呼び出しの詳細を処理しGetEnumerator、キーワードを使用したvarので、ループ変数のタイプも推測します。

于 2012-12-26T15:03:08.347 に答える
0

foreachインターフェイスから継承するオブジェクトを反復処理するIEnumerableため、インターフェイスからMembershipUserCollection継承する場合(および継承する場合)、モデルに渡すことができ、機能するはずです

MembershipUserCollection usersObj = Membership.GetAllUsers();
return PartialView(usersObj);

とビューで

@model System.Web.Security.MembershipUserCollection

<h2>Users</h2>
<ul>
    @foreach(var u in Model)
    {
        <li>u.UserName</li>
    }
</ul>
于 2012-12-26T14:57:39.000 に答える
0

GetEnumerator()コレクションを反復処理する列挙子を返します。

コレクションは、次の要件を満たしている必要があります。

The collection type:
    1. Must be one of the types: interface, class, or struct.
    2. Must include an instance method named GetEnumerator that returns a type, for example, Enumerator.

The type Enumerator (a class or struct) must contain:
   1. A property named Current that returns ItemType or a type that can be converted to it. The property accessor returns the current element of the collection.

詳細については、以下のリンクを参照してください:http: //msdn.microsoft.com/en-us/library/system.collections.ienumerable.getenumerator.aspx

于 2012-12-26T15:35:20.340 に答える