Request.CurrentExecutionFilePath 在 ASP.NET 核心

Request.CurrentExecutionFilePath in ASP.NET Core

我目前在 "old" Razor 应用程序中使用 https://github.com/madskristensen/vswebessentials.com/blob/master/Website/Views/_Layout.cshtml 的方法。在移植到 Core 2.1 时,我还没有找到 Request.CurrentExecutionFilePath 的等效项(我打算将 MvcRazorCompileOnPublish 设置为 false 进行发布,因此 cshtml 文件将在那里用于缓存失效)

您可以使用IPageFilter OnPageHandlerSelected 方法访问当前页面的ActionDescriptor。它公开了一个 RelativePath 属性,它为您提供了当前页面的相对文件路径:

public override void OnPageHandlerSelected(PageHandlerSelectedContext context)
{
    var file = context.ActionDescriptor.RelativePath;
}

您可以在此处阅读有关 IPageFilter 及其方法的更多信息:https://www.learnrazorpages.com/razor-pages/filters