我想显示图像文件夹中的所有图像。 这是我的代码:
<%
string dir = Server.MapPath("Content/slideshow/images");
string[] files;
int numFiles;
files = System.IO.Directory.GetFiles(dir);
numFiles = files.Length;
for (int i = 1; i < numFiles; i++)
{
%>
<i><a href="#">
<img src="/Content/slideshow/images/image<%= i %>.jpg" alt="" height="239px" width="930px" />
</a></i>
<% }%>
当我这样编码时,它只显示名为“image”+ blah blah blah的图像。但我想在文件夹中呈现不同名称的所有图像。 谁能解决这个问题?谢谢你提前。
答案 0 :(得分:2)
我建议您使用视图模型来实现此目的。所以让我们从定义这样的开始:
public class ImageViewModel
{
public string Url { get; set; }
}
然后我们可以有一个控制器动作来填充这个视图模型(或者恰好是它的集合):
public class ImagesController: Controller
{
[ChildActionOnly]
public ActionResult Images()
{
var appData = Server.MapPath("~/Content/slideshow/images");
var images = Directory.GetFiles(appData).Select(x => new ImageViewModel
{
Url = Url.Content("~/Content/slideshow/images/" + Path.GetFileName(x))
});
return PartialView(images);
}
}
然后我们可以定义相应的局部视图(~/Views/Shared/Images.ascx
):
<%@ Control
Language="C#"
Inherits="System.Web.Mvc.ViewUserControl<IEnumerable<ImageViewModel>>"
%>
<%= Html.DisplayForModel() %>
接下来将为每个图像(~/Views/Shared/DisplayTemplates/ImageViewModel.ascx
)呈现相应的显示模板:
<%@ Control
Language="C#"
Inherits="System.Web.Mvc.ViewUserControl<ImageViewModel>"
%>
<img src="<%= Model.Url %>" alt="" height="239px" width="930px" />
并且剩下的最后一部分是在视图或母版页中的某处包含此子操作:
<%= Html.Action("Images", "Images") %>
答案 1 :(得分:0)
public DisplayImages() {
System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(Location);
foreach (System.IO.FileInfo f in dir.GetFiles("*.*"))
{
//Do Something
}
}