我需要包括我在工作中的应用程序的每个页面上的最后修改日期。 我用通过包括在我的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;
}
}
}
你需要知道的视图,正在处理的看法时只知道的物理文件,所以我们耽误工作,直到然后:
在视图文件的底部,只需添加:
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)
下面将为你的看法写在最后一次的日期:
// Last Modified Date
var strPath = Request.PhysicalPath;
ViewBag.LastUpdated = System.IO.File.GetLastWriteTime(strPath).ToString();
注意到,我用ViewBag而不是ViewData的。
试试这个:
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);
}