我们希望在每个ASP.NET页面中嵌入一些代码,查询其“最后修改日期”并在页面底部显示。
在过去,我们依赖于对页面进行任何更改的人手动更新“* 此页面最后修改于(todays date)*”文本在页面底部。很多时候他们忘记更新这一点,这是造成一些混乱,当信息最后更新的特定页面。由于该网站不是基于CMS可以存储此信息在其后端数据库,我们试图确定页面最后一次从服务器上的文件系统保存的时间,并将该日期包含在页面的文本中。
我不确定一个基于母版页的页面是如何进入“最后修改日期”的。我们真正需要的是查询内容页面文件的LMD,这样我们就可以将其嵌入到页面的文本中,而不是它所基于的母版页的LMD中。
谢谢!
4条答案
按热度按时间dwbf0jvd1#
我想我应该把我的问题的答案贴出来,这样其他人也能受益。
我的解决方案是在母版页中添加一个标签控件,在该控件中您希望“Modified:+日期保存”信息显示。我们把我们的页脚:
然后创建一个“Page_Load”事件到母版页代码背后(本网站使用代码背后和VB),并添加以下代码:
当页面加载时,它将执行上面的代码,并将“标签”文本替换为文件上次保存到磁盘的日期。
希望这能帮上忙。
(If你知道一个更好的方法,随时教育我们的评论)
gcmastyq2#
你将无法从javascript的web服务器上的文件系统中获得最后修改日期。这是在客户端执行的,与最后一次修改物理aspx页面无关。
以下是我的建议:
1.通过简单地从System.Web.UI.Page继承来创建一个新的基页面类
1.在基页类中,使用Request.PhysicalPath将整个页获取到当前页,并使用该路径创建一个新的FileInfo对象。
1.调用FileInfo对象的Refresh()方法以获取最后修改日期(可以缓存)。
1.写出LastWriteTime属性以获取上次修改它的时间。
1.确保您要写出最后修改日期的页面继承自新基类!
下面是FileInfo类的链接:http://msdn.microsoft.com/en-us/library/system.io.fileinfo.aspx
祝你好运
马蒂
p5cysglq3#
您必须使用服务器端代码和FileInfo对象的混合来获取修改日期:http://www.communitymx.com/content/article.cfm?page=4&cid=06BF2,使用
Server.MapPath("~/virtual/page.aspx")
获取文件路径,以获取当前正在执行的页面。我知道你想让它通用,所以我相信你可以使用
Server.MapPath
和Request.ServerVariables.Get("SCRIPT_NAME")
或其他变量来通用地完成它。嗯。
3mpgtkmj4#
如果你的文件被编译成一个dll,你可以得到程序集的最后修改日期,代码取自here,并将其存储在cookie中1天: