2016-03-31 28 views

cevap

0

18 ay sonra Kendi sorumu Alptekin'in ... çerçeve şimdi ASP.NET Çekirdek 2.0 MVC ve olduğu Çerçeve, dokümantasyon ve en iyi uygulamaların biraz değişmiş gibi görünüyor.

MS docs'da açıklandığı gibi bir FileProvider kullanmalısınız. Orada burada o makaleyi yeniden hiçbir nokta, ama emin olun: docs açıklandığı gibi, başlangıç ​​kurucusuna parametreleri bir IHostingEnvironment ekleyin ve yerel değişkene onu kurtarmak

  • Başlangıç ​​olarak
  • .ConfigureServices(), ayrıca dokümanlar açıklanan IFileProvider hizmeti
  • kontrolörün yapıcı parametrelere bir IFileProvider ekle kayıt services.AddSingleton(HostingEnvironment.ContentRootFileProvider); arama ve yerel bir değişkene onu kurtarmak

Sonra aslında son değiştirilme tarihi almak için, kontrolör bu gibi bir şey olacaktır:

public class HomeController : Controller 
{ 
    private IFileProvider _fileProvider; 

    public HomeController(IFileProvider fileProvider) 
    { 
     _fileProvider = fileProvider; 
    } 

    public IActionResult Index() 
    { 
     DateTimeOffset lastModifiedDate = _fileProvider.GetFileInfo(@"Views\Home\Index.cshtml").LastModified; 
     // use it wisely... 
     return View(); 
    } 
0

IApplicationEnvironment hizmetinden ApplicationBasePath alabilirsiniz.

private readonly IApplicationEnvironment _env; 

public FileController(IApplicationEnvironment appEnv) 
{ 
    _env= appEnv; 
} 

public IActionResult Index() 
{ 
    var myModel = _env.ApplicationBasePath; 
    return View(myModel); 
} 

Sonra örneğin, bu gibi kendi yolunu hesaplama yapabilir:

public IActionResult Index() 
    { 
     var myFileVirtualPath = "/ab/c.d" 
     var myModel = Path.Combine(_env.ApplicationBasePath, myFileVirtualPath); 
     return View(myModel); 
    } 
İlgili konular