首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mvc @Url.Content.......images不显示

mvc @Url.Content.......images不显示
EN

Stack Overflow用户
提问于 2016-09-01 15:50:56
回答 1查看 6.1K关注 0票数 0

我使用mvc EF6显示来自SQL server数据库的图像,

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

做得很好

图像url保存如下

C:\Users\Naveed\Desktop\EndToEnd\UserImages\6360831428333175151-posterior-teeth.jpg

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

代码语言:javascript
复制
@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>

}

但它并没有显示图像。它的显示方式如下(见图)

我使用谷歌Chrome和FF。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-01 15:58:16

C:\Users\Naveed\Desktop\EndToEnd\UserImages\6360831428333175151-posterior-teeth.jpg

这不是图像url

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

有点像yourSite/UserImages/uniqueFileName.jpg或者只是uniqueFileName.jpg"

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

如果您的UserImages目录位于应用程序的web根目录中,则可以这样做。

代码语言:javascript
复制
<img src="@Url.Content("~/UserImages/yourFileName.png")"/>

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

例如,如果您的模型/视图模型有一个名为ImageName的属性,该属性具有唯一的文件名(仅为文件名),您可以这样做

代码语言:javascript
复制
<img  src="@Url.Content("~")/Uploads/@Model.ImageName"/>

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

编辑:根据评论。

展示所有的物品。您可以在循环中移动此图像标记。

代码语言:javascript
复制
@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>
}

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39275980

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档