3

「最終変更日」を照会してページの下部に表示するコードを各ASP.NETページに埋め込みます。

これまでは、ページに変更を加えた人が、ページの下部にある「このページの最終更新日(今日の日付) 」テキストを手動で更新することに依存していました。多くの場合、これを更新するのを忘れてしまい、その特定のページで情報が最後に更新されたのはいつかについて混乱が生じています。このサイトは、この情報をバックエンドデータベースに保存できるCMSに基づいていないため、ページがサーバー上のファイルシステムから最後に保存されたのはいつかを判断し、その日付をページのテキスト。

マスターページに基づいているページが「最終更新日」にどのように反映されるかはわかりません。私たちが本当に探しているのは、コンテンツページファイルのLMDが照会されるため、ベースとなるマスターページのLMDではなく、ページのテキストに埋め込むことができるようにすることです。

ありがとう!

4

3 に答える 3

6

他の人が利益を得ることができるように、私の質問に対する答えを投稿すると考えました。

私の解決策は、「変更:+保存日」情報を表示するマスターページにラベルコントロールを追加することでした。フッターに入れます:

Modified: <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>

次に、マスターページのコードビハインドに「Page_Load」イベントを作成し(このWebサイトはコードビハインドとVBを使用します)、次のコードを追加します。

Dim strPath As String = Request.PhysicalPath
Label1.Text = "Modified: " + System.IO.File.GetLastWriteTime(strPath).ToString()

ページが読み込まれると、上記のコードが実行され、「ラベル」テキストがファイルが最後にディスクに保存された日付に置き換えられます。

お役に立てれば。

(より良い方法をご存知の場合は、コメントでお気軽にご連絡ください)

于 2011-03-24T20:08:07.457 に答える
2

javascriptからWebサーバー上のファイルシステムから最終変更日を取得することはできません。これはクライアント側で実行され、物理的なaspxページが最後に変更されたときとは関係ありません。

これが私が提案することです:

  1. System.Web.UI.Pageから継承するだけで、新しいベースページクラスを作成します
  2. ベースページクラスでRequest.PhysicalPathを使用して、ページ全体を現在のページに移動し、そのパスを使用して新しいFileInfoオブジェクトを作成します。
  3. FileInfoオブジェクトのRefresh()メソッドを呼び出して、最終変更日を取得します(これはキャッシュできます)。
  4. LastWriteTimeプロパティを書き出して、最後に変更された時刻を取得します。
  5. 最終変更日を書き出すページが新しい基本クラスから継承されていることを確認してください。

FileInfoクラスへのリンクは次のとおりです。http://msdn.microsoft.com/en-us/library/system.io.fileinfo.aspx

幸運を。

マティ

于 2011-03-08T16:42:14.473 に答える
1

変更日を取得するには、サーバー側のコードとFileInfoオブジェクトを組み合わせて使用​​する必要があります:http://www.communitymx.com/content/article.cfm ?page =Server.MapPath("~/virtual/page.aspx") 4&cid = 06BF2現在実行中のページを取得します。

ジェネリックにしたいので、または別の変数を使用Server.MapPathしてジェネリックにすることができると思います。Request.ServerVariables.Get("SCRIPT_NAME")

HTH。

于 2011-03-08T16:46:07.007 に答える