/ / MVC відображення файлів з папки у вигляді - c #, asp.net-mvc, перегляд, .net

MVC відображає файли з папки у вигляді - c #, asp.net-mvc, view, .net

Що я хотів би зробити, це відображення вмісту папки, яка знаходиться на моєму сервері в View в моєму додатку MVC.

Я маю те, що, на мою думку, має бути на місціДія, однак, я не знаю, як слід реалізувати відповідний погляд, і мені було цікаво, якщо хтось може вказати в правильному напрямку на це. ))

Ось дію:

public ActionResult Index()
{
DirectoryInfo salesFTPDirectory = null;
FileInfo[] files = null;

try
{
string salesFTPPath = "E:/ftproot/sales";
salesFTPDirectory = new DirectoryInfo(salesFTPPath);
files = salesFTPDirectory.GetFiles();
}
catch (DirectoryNotFoundException exp)
{
throw new FTPSalesFileProcessingException("Could not open the ftp directory", exp);
}
catch (IOException exp)
{
throw new FTPSalesFileProcessingException("Failed to access directory", exp);
}

files = files.OrderBy(f => f.Name).ToArray();

var salesFiles = files.Where(f => f.Extension == ".xls" || f.Extension == ".xml");

return View(salesFiles);
}

Будь-яка допомога буде вдячна, спасибі :)

Відповіді:

5 за відповідь № 1

Якщо ви бажаєте лише імена файлів, ви можете змінити запит Linq на

files = files.Where(f => f.Extension == ".xls" || f.Extension == ".xml")
.OrderBy(f => f.Name)
.Select(f => f.Name)
.ToArray();
return View(files);

Потім (припускаючи шаблон проекту за замовчуванням) додайте до подання Index.cshtml наступне

<ul>
@foreach (var name in Model) {
<li>@name</li>
}
</ul>

Який буде відображати список імен файлів


5 для відповіді № 2
  1. ІМХО ви повинні виставляти тільки те, що дійсно потрібне погляду. Подумайте про це: вам дійсно потрібно отримати ціле FileInfo об'єкт або тільки шлях до файлу? Якщо остання вірна, просто поверніть a IEnumerable<string> до перегляду (замість a IEnumerable<FileInfo>, що ви робите в вищенаведеному коді) Підказка: просто додайте a Select зателефонуйте до вашого виразу Linq ...
  2. Тоді ваш погляд просто відобразить цю модель - вам знадобиться цикл foreach і якийсь HTML-код для цього.

3 для відповіді № 3

Це спрощений приклад подання бритва. Він виведе назви ваших файлів у таблиці HTML.

  @model IEnumerable<FileInfo>

<h1>Files</h1>
<table>

@foreach (var item in Model) {
<tr>
<td>
@item.Name
</td>
</tr>
}

</table>