5

職場のアプリケーションのすべてのページに最終更新日を含める必要があります。以前は、現在の .aspx ページの最終更新日を返す WebForms マスター ページの下部に <%= LastModified %> への参照を含めることでこれを行っていました。私のコードは、関連付けられた .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;
        }
    }
}
4

3 に答える 3

1

以下は、ビューが最後に書き込まれた日付を示します。

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

ViewData の代わりに ViewBag を使用していることに気付きました。

于 2011-09-06T20:40:03.217 に答える
0

これを試して:

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);
}
于 2013-12-09T08:28:38.490 に答える