【发布时间】:2016-11-03 23:16:56
【问题描述】:
我想要做的是显示来自网络根文件夹的图像,这就是我想要做的方式:
以下课程只是实验性的,只是我尝试的示例。目前,文件夹中只有一张正在读取的图像。
rootPath 也取自:_hostingEnvironment.WebRootPath
public class GetRandomImageForGalleryView : IGetRandomImageFromFolder
{
private string rootPath;
public GetRandomImageForGalleryView(string rootPath)
{
this.rootPath = rootPath;
}
public string[] getImage()
{
return ReadPhotosFromDirectory();
}
private string[] ReadPhotosFromDirectory()
{
string[] fileLocations = Directory.GetFiles(rootPath+"\\lib\\Images\\Nature");
return fileLocations;
}
}
这就是我试图展示它的方式:
@model IGetRandomImageFromFolder
@{
ViewBag.Title = "Gallery";
}
<div class="container">
<div class="row">
@{
foreach (string item in Model.getImage())
{
<img src="@item" alt="Image" />
}
}
</div>
</div>
但是没有输出,即使我将其更改为<img src="@Url.Content(item)" alt="Image" /> 仍然没有发生任何事情。
如果我只输出@item,它将显示图像的路径。
app.UseStaticFiles(); 也已添加。
所以我的问题是我做错了什么,我错过了什么吗?以及如何正确地做到这一点?
【问题讨论】:
-
HTML 生成是否正确?如果您在浏览器的开发人员工具中查看网络选项卡,浏览器是否会请求检索图像?
-
@mason 好吧,请求被标记为红色,据说被阻止,如果它有意义的话。顺便说一句,谢谢你说一些新的东西,从没想过。
-
标记为红色,但错误代码是什么?你确定图片的 URL 是正确的吗?如果您复制该 URL 并尝试直接导航到那里,您会到达该图像吗?
-
@mason 如果我这样指定它:
<img src="~/lib/Images/Nature/download.jpg" alt="Image" />它可以工作。所以我的假设是_hostingEnvironment.WebRootPath提供的路径有问题,对吗?错误代码? - 我在开发者工具错误代码中的任何地方都看不到。 -
@mason 设法以不同的方式解决它会在不同的部分询问它是否是正确的方式。感谢您的回复以及值得关注的课程。
标签: c# asp.net razor asp.net-core asp.net-core-mvc