2015-02-11 34 views
-2

我在这里粘贴代码.cshtml的一个片段:如何粘贴从字符串路径SRC IMG标记在asp.net mvc的5

@foreach (var element in Model){ 
string path = File.Exists("~/Content/Images/" + element.ProductId + ".jpg") ? ("~/Content/Images/" + element.ProductId + ".jpg") : ("~/Content/Images/image_preview.jpg"); 

    <img [email protected] class="pull-left img-thumbnail" height="100" width="100" /> } 

我不知道为什么会这么想的工作。在路径中是正确的字符串,但图像不显示。

+0

你能粘贴完整路径吗? – 2015-02-11 23:46:52

+0

'File'类不适用于虚拟路径。 – 2015-02-11 23:48:37

+0

您的路径将始终是':'后面的位,并且将直接以'〜'前缀的形式输出到浏览器。这是行不通的。 – DavidG 2015-02-11 23:49:32

回答

0

在使用File.Exists函数之前,您需要将路径映射到实际文件。使用Url.Content()函数将前缀~的路径转换为系统上的实际位置。

@foreach (var element in Model) { 
    string testPath = Url.Content("~/Content/Images/" + element.ProductId + ".jpg")); 
    string path = File.Exists(testPath) ? testPath : Url.Content("~/Content/Images/image_preview.jpg"); 

    <img src="@path" class="pull-left img-thumbnail" height="100" width="100" /> } 
+0

我做你写的,现在我看到图像“image_preview.jpg”:)但所有时间的路径都有“image_preview.jpg”字符串,而不是“ProductId.jpg”例如“1.jpg” – user3609885 2015-02-12 00:15:06