私のASP.Net MVCアプリケーションでは、HTML.DisplayForメソッドを使用してHTMLで異なるプロパティ値を表示したいループがあります。しかし、それはModelパラメーターに指示する文字列値を受け入れません。文字列を使用したHTML.DisplayForメソッド
ノーマルモード:
<img src="@Html.DisplayFor(model => model.Image_1)" />
マイループ:img src
で
@for (int i = 1; i < 11; i++)
{
string currentImage = "Model.Image_" + i;
if ((@Html.DisplayFor(model => "Model.Image_" + i).ToString()) != "")
{
<div>
<img src="@Html.DisplayFor(model => currentImage)" />
</div>
}
}
私の結果はちょうどcurrentImage
です。 私はそれがModel.Image_" + i
になりたいと思います。 どうすればいいですか?
これを行うにはより良い方法があれば、それも高く評価されます。 私のイメージには独自のモデルクラスが必要ですか?
'if'ブロック(それは意味をなさない)を削除し、単に' string currentImage = "Image_" + i;を使用してください。 'しかし、これはすべて設計上の問題を示唆しています。画像パスを含む 'IEnumerable Images'プロパティを持つべきです –
ifブロックは、プロパティが空(" ")ならHTMLを追加しません。あなたのアイデアをありがとう – Tigerhajen
本当にあなたが 'Image_1'、' Image_2'などのプロパティを持っているなら、あなたは明らかに大きな設計上の欠陥があります。 –