在C#代码中添加图像(MVC4)

时间:2016-10-21 01:06:07

标签: c# html asp.net asp.net-mvc-4

我试图在某个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 =&quot;~/Content/offstate.png&quot;>");
             }

             else
             {
                 return new HtmlString("<img src =~/Content/onstate.png>");
             }
         }),

并非正常工作,因为每张图片返回的网址为https://localhost:44300/~/Content/onstate.pnghttps://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所建议的那样!

1 个答案:

答案 0 :(得分:1)

无论当前页面如何,您始终需要相对路径指向该图像。在这种情况下,我们需要@ Url.Content(...)。

查看why use @Url.Content主题,而不是提供路径。从@ Url.Content获取路径并加入您的HTML。