有条件地显示在的WebGrid图像(Conditionally display an image i

2019-10-17 11:03发布

nemesv的代码有条件地显示在的WebGrid图像- MVC 3在MVC3的伟大工程。

@grid.GetHtml(
  displayHeader: false,
  columns: grid.Columns(
           grid.Column(format: (item) =>
             {
               if (item.IsMainPreview == true)
             {
                return Html.Raw(string.Format("<text><img src=\"{0}\" alt=\"Image\"/></text>", Url.Content("~/Content/images/preview-photo.gif")));
             }

在MVC4你不需要Url.Content使用“〜”。 我一直没在获得的代码,而不Url.Content工作(不能找到图像)成功的。 我努力了

return Html.Raw(string.Format("<text><img src=\"{0}\" alt=\"Image\"/></text>", "~/Content/images/preview-photo.gif"));

return Html.Raw(string.Format("<text><img src={0} alt=\"Image\"/></text>", "~/Content/images/preview-photo.gif"));

等等。 有谁知道如何得到这个在MVC4工作没有URL.Content?

谢谢,

Answer 1:

这这种情况下,它不会不工作Url.Content

由于~如果你在你的剃须刀模板,直接把它更换只能(剃刀做这种替换时,它分析你的.cshtml和生成响应)。

grid.GetHtml返回比写入没有任何剃刀解析响应呈现的HTML。

你可以用下面的代码片段(直接复制到任何测试.cshtml ):

<img src="~/Content/images/preview-photo.gif" />

@{
    var img =  "<img src=\"~/Content/images/preview-photo.gif\" />";
}

@Html.Raw(img)

第一个图像将被正确显示,因为剃刀对其进行解析并执行~更换,但第二不会因为HTML只是作为字符串写入到响应并没有解析参与。



文章来源: Conditionally display an image in webgrid