ASP.net MVC プロジェクトに、コントローラー (SubmissionController) とクラス (Submission) に関連付けられたビューがあります。
ビューでは、次を使用してクラスからいくつかの値を表示しています。
@Html.DisplayFor(Function(model) model.Created)
これは完全に機能しますが、ここで達成したいことは、上記で参照したモデル内にネストされたコレクションの表示名を取得できるようにすることです。
それを明確にするために。ビューで多数の提出物のうちの 1 つの提出物を表示しています (SubmissionController の Details 関数を使用)。各提出物には多くの写真があり、提出物の詳細と一緒に提出物の詳細ビューに表示したいのはこれらの写真です。
写真を表示するために、写真のテーブルを作成する次のコードがあります...
<tbody>
@For Each item In Model.Photos
Dim currentItem = item
@<tr>
<td>
@Html.DisplayFor(Function(modelItem) currentItem.Photo_ID)
</td>
<td>
@Html.DisplayFor(Function(modelItem) currentItem.Photo_Status1.Value)
</td>
<td>
@Html.DisplayFor(Function(modelItem) currentItem.Photo_Size)
</td>
<td>
@Html.DisplayFor(Function(modelItem) currentItem.Photo_Taken)
</td>
</tr>
Next
</tbody>
テストされていませんが、上記のコードは問題なく動作するはずです。
これを念頭に置いて、Photoフィールド/プロパティのDisplayNameFor値を取得するにはどうすればよいですか?
どうやら、これは機能しません。
@Html.DisplayNameFor(Function(model) model.Photos.Photo_Size)
ところで、ヘッダー名を手動で書きたくありません。それらはモデルから取得する必要があります。
答え
DigitalDの答えはほぼそこにありました。ここに解決策があります。
@Dim photoModel = New Photo()
@Html.DisplayNameFor(Function(photoModelx) photoModel.Photo_ID)