0

ASP.NET MVC カミソリ ビューの詳細ページでは、次のようなモデルを作成できます。

@model MyClass

そして、次のようにします。

@html.DisplayNameFor(m => m.MyProperty)

しかし、私が持っているリストページでは:

@model IEnumerable<MyClass>

同じ @html コードが機能します。MyProperty は IEnumerable のプロパティではないため、期待していません。カミソリ ビュー エンジンが IEnumerable 自体のプロパティではなく、型パラメーター MyClass のプロパティを確認することを認識しているという点で、IEnumerable は「特別」ですか?

4

1 に答える 1

1

IEnumerable が特別であることはあまりありません。@html.DisplayFor(m => m.MyProperty) を使用すると、IEnumerable リストに "MyProperty" の定義が含まれていないというエラーが発生します。linq クエリを使用して 1 つの MyClass オブジェクトを選択するか、モデルに対して ForEach() を実行する必要があります。

@html.DisplayNameFor は、IEnumerable モデルのオーバーロードがあるという点で特別です。厳密に型指定されたリストがあるため、表示名を見つける方法を知っています。便利な機能です!

于 2013-01-18T04:31:23.367 に答える