在visual studio虚拟服务器中,这可行。但是,当我在IIS上放置网站时,它不会显示内容文件夹中的图像。
var imgPath = '/Content/Images/Icons/' + icon + '.png';
var imageContent = '@Server.MapPath(Url.Content("-1"))';
image = imageContent.replace('-1', imgPath);
我在浏览器foreach图像中出现错误
http://localhost/Content/Images/Icons/carwash.png Failed to load resource: the server responded with a status of 404 (Not Found)
答案 0 :(得分:4)
首先,您确定所有“图标”都是解决方案的一部分,并且实际上是部署到您的Web服务器上吗?我有一些实例,我会在解决方案目录中添加一个文件,而VS不会自动在其中包含解决方案,因此它实际上从未部署过......
如果没有问题并且图片实际存在,我的下一个问题是,您是否尝试过在视图中使用@Url.Content
帮助程序来确定它是否正常工作?
<img src="@Url.Content("~/Content/Images/Icons/SomeIcon.png")"/>
修改强>
由于您尝试在Javascript中完成此操作并且上述标记在HTML中工作,您应该能够将该代码压缩到以下代码:
var image = '@Url.Content("~/Content/Images/Icons/")' + icon + '.png';
继续,让MVC获取Icon文件夹的路径,并将文件和扩展名附加到该文件夹。这应该消除了对字符串替换的需要,并且仍然能够处理JS中的图标路径。
var image
现在将成为您传递给此函数的图标文件的完整相对路径。您可以使用此字符串更新和img src标记或创建图像或其他任何内容。