【发布时间】:2016-03-23 11:43:54
【问题描述】:
我想为文件夹中的每个文件生成列表。例如,如果我在特定文件夹中有以下文件
- sample_picture1.jpg
- sample_picture2.jpg
我想生成如下网址链接
- [0] - src='http://localhost/path/sample_picture1.jpg'
- [1] - src='http://localhost/path/sample_picture2.jpg'
目前我是这样创建的。
在文件夹中查找文件的json方法
public JsonResult filesinfolder()
{
string salesFTPPath = "folder_path";
DirectoryInfo salesFTPDirectory = new DirectoryInfo(salesFTPPath);
IEnumerable<string> files = salesFTPDirectory.GetFiles()
.Where(f => f.Extension == ".xls" || f.Extension == ".xml" || f.Extension == ".jps" || f.Extension == ".jpg" || f.Extension == ".jpeg" || f.Extension == ".png")
.OrderBy(f => f.Name)
.Select(f => f.Name);
return Json(files, JsonRequestBehavior.AllowGet);
}
获取文件的脚本
$(document).ready(function () {
$.ajax({
type: 'GET',
url: '@Url.Action("filesinfolder", "Home")',
dataType: "json",
success: function (data) { onSuccess(data); },
error: function (xhr, status, err) {}
});
});
var onSuccess = function (data) {
};
所以我想将结果作为 URL 列表发送到 onSuccess(对于文件夹中的文件)。
【问题讨论】:
-
您为此使用 ajax 是否有任何具体原因(而不是将文件集合传递给视图并生成链接)
-
@StephenMuecke 因为我需要做一次页面加载我正在使用 ajax ,没有其他原因,还有其他更好的方法吗?
-
将url集合传递给视图肯定会更简单(理想情况下使用视图模型属性,但它可以是
ViewBag属性)。你想对他们做什么? - 创建<img>元素? -
我不清楚问题/问题是什么。这段代码不起作用吗?如果不是,它在做什么,有什么错误等等?
-
当然。只需在 GET 方法中生成集合,将其分配给视图模型属性,然后在视图中使用
@foreach(string url in Model.Images) { <img scr="@url" height=".." width=".." /> }(请注意,您可能需要Url.Content()来生成正确的 url)
标签: javascript jquery asp.net-mvc asp.net-mvc-3