【发布时间】:2018-02-16 01:59:33
【问题描述】:
在我的 ASP.Net MVC 应用程序中,我有一个循环,我想使用 HTML.DisplayFor 方法在 HTML 中显示不同的属性值。但它不会接受指向 Model 参数的字符串值。
普通模式:
<img src="@Html.DisplayFor(model => model.Image_1)" />
我的循环:
@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>
}
}
我在img src 中的结果只是currentImage。
我希望它是Model.Image_" + i。
我该怎么做?
如果您有更好的方法来做到这一点,我们也将不胜感激。 你认为我的图像应该有自己的 Model 类吗?
【问题讨论】:
-
删除
if块(这没有意义)并只使用string currentImage = "Image_" + i; <img src="@Html.Display(currentImage)" />但这一切都表明存在设计问题。您应该有一个包含图像路径的IEnumerable<string> Images属性 -
如果属性为空 ( "" ),if 块将不添加 HTML。谢谢你的想法
-
如果你真的有属性
Image_1,Image_2等,你显然有一个重大的设计缺陷
标签: asp.net asp.net-mvc displayfor