Как сделать содержимое каталога доступным для просмотра в ASP.Net Основное приложение через http-страницы?

#asp.net-core

#asp.net-core

Вопрос:

Я хочу показать содержимое каталога, чтобы пользователи могли просматривать его и нажимать файлы для их загрузки.

Есть ли решение в ASP.Net Core для этого?

Ответ №1:

Самое быстрое решение — добавить промежуточное программное обеспечение с помощью app.UseDirectoryBrowser();

 public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
  if (env.IsDevelopment())
  {
    app.UseDeveloperExceptionPage();
  }
  else
  {
    app.UseExceptionHandler("/Error");
    // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
    app.UseHsts();
  }

  app.UseHttpsRedirection();
  app.UseDirectoryBrowser();
  app.UseStaticFiles();
  app.UseCookiePolicy();

  app.UseMvc();
}
  

Это дает следующий результат :

введите описание изображения здесь

Более того, можно добавить путь запроса, чтобы он был включен в запрос.

 app.UseDirectoryBrowser(requestPath:"/data");
  

то есть:https://localhost:44386/data /

Последнее: могут быть предоставлены поставщик файлов и средство форматирования файлов :

   app.UseDirectoryBrowser(options:
    new DirectoryBrowserOptions(
      new SharedOptions()
      {
        // the IFileProvider class is a way to provide the files to be displayed
        FileProvider = new MyFileProvider()
      }
      )
    {
      // The IFileFormatter implementation is a way to customize presentation of the directory
      RequestPath = "/data2",
      Formatter = new MyFileFormatter()
    }
    );