我想将我的ASP.NET MVC站点部署到某个位置C:\ home \ MySite \,我想给它一个配置值指向该服务器上的不同位置:C:\ home \ SomeOtherLocation \相册,并在我的页面上显示该位置的图像。
我的控制器返回一个AlbumLinks列表,其中包含一个名为ImagePath的属性,它看起来像“C:\ home \ SomeOtherLocation \ Albums \ Album1 \ Image1.jpg”。我的观点如下:
@model IEnumerable<AlbumLink>
@{
ViewBag.Title = "Albums";
}
@foreach (AlbumLink l in Model)
{
<p><img src="@l.ImagePath" /></p>
}
但不显示图像。我确认图像位于正确的位置。这是在视图上显示外部图像的正确方法吗?我知道我可以将相册及其所有图像添加到解决方案中,但我不想这样做。我想部署站点并将其配置为指向要显示的图像集合。我知道这是可行的。实现这一目标的最佳方法是什么?感谢。
答案 0 :(得分:1)
您无法链接到C:\something
之类的文件,因为浏览器无法访问此类路径。所有图片必须由您的网络服务器托管。
您应该使用类似Server.MapPath
的内容。
答案 1 :(得分:1)
这里有两个问题:
首先,您不能使用ImagePath,因为路径是服务器的本地路径,而不是客户端。您需要提供完整的网址
其次,IIS无法查看目录结构中的目录。您可以在IIS中添加一个重定向到
之类的位置的目录MVC找不到匹配的控制器,因此将返回IIS查找内容。