MVC 3 视图:如何使用包含字符串和模型数据的 src 创建 <image>

Posted

技术标签:

【中文标题】MVC 3 视图:如何使用包含字符串和模型数据的 src 创建 <image>【英文标题】:MVC 3 View: How to create <image> with src that contains both a string and model data 【发布时间】:2011-11-12 14:34:58 【问题描述】:

所以我在 MVC 3 中开始了一个小型家庭项目,我需要在其中制作照片库。

我一直在遵循一个指南,在该指南中,我在我的 Content 文件夹中创建了一个 Image 文件夹,其中我放置了 2 张图片以及一个包含每张图片的路径和描述的 xml 文件。

然后将 XML 从文件系统加载到 XDocument 中并传递到视图。

然后视图应该遍历每个图像(有 2 个属性,路径和描述)并将此路径插入 html src 属性和 href 属性。

我可以看到路径已正确传递到视图,例如 img1.png。但是,我在获取显示图片的路径时遇到问题。我认为 href 和 src 无法正确解释属性字符串。

还是我需要相对路径或 Url.Content 编码?

这里是风景

@foreach(var item in Model)
 <div>
   <a href="content/images/@item.path">
     <img src="content/images/@item.path"/>
   </a>
   <span>
    @item.description
   </span
</div>

我希望我已经正确解释了它,否则请不要犹豫询问更多信息。

我的计划是有一个包含这些图片的页面,然后使用 jQuery Ligthbox 能够放大图片并轻松查看图片。

【问题讨论】:

【参考方案1】:

相对路径在这里不起作用。因为路由路径。例如,您当前的网址是 mydomain.com/Gallery/All,而您的图片路径为 content/images/@item.path,它将返回 mydomain.com/Gallery/All/content/images/@item.path,而且您的图片肯定不在那个位置。

为此,您更简单的方法是像这样使用Url.Content

@foreach(var item in Model)
 <div>
   <a href="@Url.Content("~/content/images/" + item.path)">
     <img src="@Url.Content("~/content/images/" + item.path)" />
   </a>
   <span>
    @item.description
   </span
</div>

【讨论】:

以上是关于MVC 3 视图:如何使用包含字符串和模型数据的 src 创建 <image>的主要内容,如果未能解决你的问题,请参考以下文章

MVC 3 应用程序中的模型、视图模型、DTO

如何在 ASP.NET MVC 3 中为填充的下拉列表创建视图模型

ASP.NET 核心 MVC 弹出模式,其中包含来自视图的模型数据

ext.net mvc gridpanel 使用具有复杂模型类型的数据源

Android开发之MVC设计模式

无法更改 ASP.NET MVC 3 中文本框的值