gpt4 book ai didi

c# - 如何在 ASP.NET Core MVC 中获取文件的最后修改日期?

转载 作者:行者123 更新时间:2023-11-30 12:41:49 24 4
gpt4 key购买 nike

我正在将一个小型 MVC 5 网站移植到 MVC 6 以发现重大更改。东西坏了。

MVC 5 代码使用@File.GetLastWriteTime(this.Server.MapPath(this.VirtualPath)) 来获取时间戳,推荐here .显然在 MVC 6 中,.cshtml 页面不再有 ServerVirtualPath 成员。什么是新咒语?

最佳答案

18 个月后重温我自己的问题...框架现在是 ASP.NET Core 2.0 MVC,框架、文档和最佳实践似乎发生了一些变化。

您应该使用 MS docs 中描述的 FileProvider .在这里重新创建该文章没有意义,但请务必:

  • 将 IHostingEnvironment 添加到 Startup constructor 参数,并将其保存在局部变量中,如文档中所述
  • 在 Startup.ConfigureServices() 中,调用 services.AddSingleton(HostingEnvironment.ContentRootFileProvider); 注册一个 IFileProvider 服务,文档中也有描述
  • 将 IFileProvider 添加到 Controller 的构造函数参数中,并将其保存在局部变量中

然后要实际获取最后修改日期, Controller 将如下所示:

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();
}

关于c# - 如何在 ASP.NET Core MVC 中获取文件的最后修改日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36326353/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com