我有一个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>
答案 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>
}