[英]How can i get folder path in asp.net mvc app by browsing folders
[英]How can I get files from multiple folders in ASP.NET MVC?
public ActionResult DisplayFiles()
{
var getCategory = dbcontext.tblDetails.Select(x => x.Category).Distinct().ToList();
ViewBag.Category = getCategory;
foreach (string category in getCategory)
{
ViewBag.Images = Directory.EnumerateFiles(Server.MapPath("~/" + category)).Select(fn => "~/" + category + "/" + Path.GetFileName(fn));
}
return View();
}
我嘗試像這樣上傳它,其中category
從我想要獲取文件的表tblDetails
的數據庫中返回文件夾名稱。
實際上,上面的代碼在每次循環迭代后覆蓋文件夾名稱,並將最后一個類別名稱提供給Viewbag.Images並僅顯示該文件夾的文件
將您的循環更改為:編輯
List<string> images = new List<string>;
foreach (string category in getCategory)
{
images.AddRange(Directory.EnumerateFiles(Server.MapPath("~/" + category))
.Select(fn => "~/" + category + "/" + Path.GetFileName(fn)).ToList());
}
ViewBag.Images = images;
您在循環中所做的只是返回最終圖像,因為每次迭代都會覆蓋結果。
實際上,上面的代碼在每次循環迭代后覆蓋文件夾名稱,並將最后一個類別名稱提供給 Viewbag.Images 並僅顯示該文件夾的文件
您可以嘗試使用List<IEnumerable<string>>
來存儲所有文件夾及其文件名
var data = new List<IEnumerable<string>>();
foreach (string category in getCategory)
{
var images = Directory.EnumerateFiles(Server.MapPath("~/" + category)).Select(fn => "~/" + category + "/" + Path.GetFileName(fn));
data.Add(images);
}
ViewBag.Images = data;
然后在您看來,您可以將它們顯示為一個組,例如
@foreach( var folder in ViewBag.Images)
{
<ul>
@foreach (var image in folder)
{
<li>@image</li>
}
</ul>
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.