我试图在某个if / else逻辑中的webgrid中加载图像。基本上,如果API返回true,则显示一个图像,如果为false则显示另一个图像,但是我现在正在使用的代码 -
columns: grid.Columns(
grid.Column("PowerState", format: (vm) =>
{
if (vm.PowerState == "Stopped") //Choose font colour depending on the status of the VM
{
return new HtmlString("<img src ="~/Content/offstate.png">");
}
else
{
return new HtmlString("<img src =~/Content/onstate.png>");
}
}),
并非正常工作,因为每张图片返回的网址为https://localhost:44300/~/Content/onstate.png和https://localhost:44300/&#34;〜/ Content / offstate.png&#34; 分别当我想要的是https://localhost:44300/Content/offstate.png
(尝试删除〜/烦恼,但这会返回https://localhost:44300/Home/Content/onstate.png,以防有人有这个想法。)
编辑:解决方案是使用Url.Content函数
return new HtmlString("<img src = " + Url.Content("~/Content/offstate.png") + ">");
正如Ashok所建议的那样!
答案 0 :(得分:1)
无论当前页面如何,您始终需要相对路径指向该图像。在这种情况下,我们需要@ Url.Content(...)。
查看why use @Url.Content主题,而不是提供路径。从@ Url.Content获取路径并加入您的HTML。