基于模型元素动态渲染图像

时间:2020-07-08 04:47:38

标签: c# html image bootstrap-4 razor-pages

我有一个View模型,其中包含要用于将某些图像动态呈现到剃刀视图的字符串列表。

public List<string> States { get; set; } = new List<string>() { "ACT", "NSW", "NT", "QLD", "SA", "TAS", "VIC", "WA" };

这就是我在做什么:

@foreach (var state in Model.States)
  {
    var stateImage = $"~/Images/{state}.jpg";

     <div class="col-lg-4 col-xl-4 col-md-6 pb-4 card-deck">
            <div class="card">
                   <img src="@stateImage" class="card-img" />
            </div>
     </div>
}

我的问题是图像无法渲染。如果我对路径进行硬编码(“〜/ Images / ACT.jpg” 例如),然后它可以完美运行并加载图像,如果我通过调试器观察它,甚至只是将其显示在div上,那么它显示的是我正在硬编码的完全一样的东西,但它仍然无法呈现图像,我不确定为什么。 / p>

1 个答案:

答案 0 :(得分:1)

~的评估方法与代码相同。如果将其分配给字符串变量,则不能将其解析为Razor语法。在您的示例中,无论如何都不需要使用字符串变量。

尝试一下:

@foreach (var state in Model.States)
{
     <div class="col-lg-4 col-xl-4 col-md-6 pb-4 card-deck">
            <div class="card">
                   <img src="~/Images/@stateImage" class="card-img" />
            </div>
     </div>
}