查看的ASP.NET MVC得到最后的修改日期/ FileInfo的(ASP.NET MVC get

2019-07-21 05:23发布

我需要包括我在工作中的应用程序的每个页面上的最后修改日期。 我用通过包括在我的WebForms的底部<%=上次更改%>参考来做到这一点掌握这将返回当前.aspx页的最后修改日期页面。 我的代码,甚至会检查相关.aspx.cs文件,比较上次修改的日期,并返回最近的日期。

有谁知道,如果你可以阅读的MVC查看FileInfo的? 我想如果可能的话,把它列入母版页。

我有一个基本的控制器,所有的有线和准备去。 所有我需要知道的是如何访问当前视图的FileInfo。

namespace MyMVCApp.Controllers
{
    public abstract class SiteController : Controller
    {
        public SiteController()
        {
            ViewData["modified"] = NEED TO GET FILEINFO OF CURRENT VIEW HERE;
        }
    }
}

Answer 1:

你需要知道的视图,正在处理的看法时只知道的物理文件,所以我们耽误工作,直到然后:

在视图文件的底部,只需添加:

Last Modified Date: @File.GetLastWriteTime(this.Server.MapPath(this.VirtualPath))

注意:它必须是你想要的日期视图文件。 如果你把它的布局文件,它会给你该文件的日期。 但是,您可以使用一个获取日期到页脚section

在查看:

@section lastwrite
{
    Last Modified Date: @File.GetLastWriteTime(this.Server.MapPath(this.VirtualPath))
}

布局:

@RenderSection("lastwrite", required: false)


Answer 2:

下面将为你的看法写在最后一次的日期:

// Last Modified Date
var strPath = Request.PhysicalPath;
ViewBag.LastUpdated = System.IO.File.GetLastWriteTime(strPath).ToString();

注意到,我用ViewBag而不是ViewData的。



Answer 3:

试试这个:

private DateTime? GetDate(string controller, string viewName)
{
    var context = new ControllerContext(Request.RequestContext, this);
    context.RouteData.Values["controller"] = controller;
    var view = ViewEngines.Engines.FindView(context, viewName, null).View as BuildManagerCompiledView;
    var path = view == null ? null : view.ViewPath;
    return path == null ? (DateTime?) null : System.IO.File.GetLastWriteTime(path);
}


文章来源: ASP.NET MVC getting last modified date/FileInfo of View