加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 22:29:03 所属栏目:百科 来源:网络整理
导读:我正在将一个小型的MVC 5网站移植到MVC 6,以发现重大变化.东西正在破碎. MVC 5代码使用@ File.GetLastWriteTime(this.Server.MapPath(this.VirtualPath))来获取时间戳,如建议的here.显然在MVC 6中,.cshtml页面不再具有Server或VirtualPath成员.什么是新的咒
我正在将一个小型的MVC 5网站移植到MVC 6,以发现重大变化.东西正在破碎.

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

解决方法

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

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

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

然后,为了实际获得最后修改日期,控制器将看起来像这样:

public class HomeController : Controller
{
    private IFileProvider _fileProvider;

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读