Получить список файлов из View, ASP.NET Core razor
Изучаю ASP.NET Core, есть такой код для закидывания файла в папку wwwroot/Files и для скачивания его оттуда
@model IEnumerable<FileUploadApp.Models.FileModel>
@{
ViewData["Title"] = "Добавление файла";
}
<h3>Выберите файл для загрузки</h3>
<form asp-action="AddFile" asp-controller="Home" method="post" enctype="multipart/form-data">
<input type="file" name="uploadedFile" /><br>
<input type="submit" value="Загрузить" />
</form>
<h3>Получить файл</h3>
<form asp-action="GetFile" asp-controller="Home" method="get" enctype="multipart/form-data">
<input type="submit" value="Получить" />
</form>
Внутри контроллера соответственно есть связанные методы
[HttpPost]
public async Task<IActionResult> AddFile(IFormFile uploadedFile)
{
if (uploadedFile != null)
{
string path = "/Files/" + uploadedFile.FileName;
using (var fileStream = new FileStream(_appEnvironment.WebRootPath + path, FileMode.Create))
{
await uploadedFile.CopyToAsync(fileStream);
}
FileModel file = new FileModel { Name = uploadedFile.FileName, Path = _appEnvironment.WebRootPath + path };
_context.Files.Add(file);
_context.SaveChanges();
}
return RedirectToAction("Index");
}
public IActionResult GetFile()
{
string file_path = _appEnvironment.WebRootPath + "/Files/" + "5.jpg";
string file_type = "application/octet-stream"
string file_name = "5.jpg";
return PhysicalFile(file_path, file_type, file_name);
}
И теперь вопрос - если я хочу отобразить во вьюшке кнопки для скачки каждого файла из папки Files, как мне получить во вьюшке список всех файлов, которые есть в папке Files?
Я конечно могу сделать в контроллере новый метод, внутри которого будет что то вроде
DirectoryInfo d = new DirectoryInfo(_appEnvironment.WebRootPath + "/Files/");
return d.GetFiles();
И обращаться наверное как то из вьюшки к этому методу, но не еще же одним GET-запросом? Может есть какой то нормальный правильный способ получить из вьюшки данные о файлах внутри папки wwwroot/Files?