mvc @ Url.Content .......图片没有显示

时间:2016-09-01 15:50:56

标签: html asp.net-mvc razor

我正在使用 mvc EF6 来显示来自SQL Server数据库的图片,

我们已将图像保存到本地文件夹及其到数据库的URL。

做得很好

图片网址保存

  

C:\ Users \用户函数naveed \桌面\端到端\ UserImages \ 6360831428333175151 - 后-teeth.jpg

然后我在视图中使用下面的代码来显示图片

@model IEnumerable<iSmileFinal.Models.Imaging>
@if (Model != null)
{
<div class="adsm-sec">
    @foreach (var vad in Model)
    {
        <div id="img">
            <div class="adsm-image-wraper">
                @*@{string imagePath = Url.Content("~/UserImages/");}*@

                @*<img src='@Url.Content("~/UserImages/")' alt="no photo" />*@

                <img src='@Url.Content(vad.ImageUrl)' alt="no photo" class="adsm-image" />

                <img src='@Url.Content(String.Format(vad.ImageUrl))' style="width:200px; height:90px;" />
            </div>
        </div>

       <img>@Html.DisplayFor(modelItem => vad.ImageUrl)

        @Html.DisplayFor(modelItem => vad.ImageType)

        @Html.DisplayFor(modelItem => vad.Comments)
    }
</div>

}

但它没有显示图像。 它显示如(见图)

enter image description here

我使用谷歌浏览器和FF。

1 个答案:

答案 0 :(得分:3)

  

C:\ Users \用户函数naveed \桌面\端到端\ UserImages \ 6360831428333175151 - 后-teeth.jpg

这不是图片网址

这是文件的物理路径。上传图像时,不应将其存储在数据库中。相反,您应该存储相对于您的Web应用程序的URL /唯一文件标识符。

类似yourSite/UserImages/uniqueFileName.jpguniqueFileName.jpg"

之类的内容

现在,当您呈现页面时,请从db表中读取此值,并使用此相对URL作为图像src属性。如果您只是存储文件名,则可能需要将其附加到存储文件位置"UserImages\"+yourFileNameVariable;并使用它来使其相对

如果UserImages目录位于应用程序的Web根目录中,则可以执行此操作

<img src="@Url.Content("~/UserImages/yourFileName.png")"/>

如果要在db表中存储文件名,请将yourFileName.png替换为c#变量/模型属性名称。

例如,如果你的model / viewmodel有一个名为ImageName的属性,它有唯一的文件名(只是文件名),你可以这样做

<img  src="@Url.Content("~")/Uploads/@Model.ImageName"/>

@Url.Content("~")将返回到网络根目录的相对路径

编辑:根据评论。

显示所有项目。您可以在循环中移动此图像标记。

@model IEnumerable<iSmileFinal.Models.Imaging>
@if (Model != null)
{
<div class="adsm-sec">
    @foreach (var vad in Model)
    {
        <img src="@Url.Content("~")/Uploads/@vad.ImageName" />
    }
 </div>
}

假设Imaging类具有ImageName属性,您将在其中加载存储在~/Uploads目录下的文件名。