首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >ASP.NET:获取页面的文件名

ASP.NET:获取页面的文件名
EN

Stack Overflow用户
提问于 2009-11-28 09:04:51
回答 3查看 11.2K关注 0票数 18

我有一个名为Default.aspx的ASPX页面。从它在Page_Load()上的代码背后,我想把"Default.aspx“单独放到一个字符串中:

代码语言:javascript
复制
protected void Page_Load(object sender, EventArgs e)
{
    string aspxFileName = ?;
}

我应该用什么替换? -什么会让我得到ASPX文件名?

EN

回答 3

Stack Overflow用户

发布于 2009-11-28 09:11:36

System.IO.Path.GetFileName(Request.PhysicalPath);

票数 24
EN

Stack Overflow用户

发布于 2009-11-28 09:09:10

代码语言:javascript
复制
protected void Page_Load(object sender, EventArgs e)
{
    string cssFileName = Path.GetFileName(this.Request.PhysicalPath).Replace(".aspx", ".css");
}
票数 6
EN

Stack Overflow用户

发布于 2009-11-28 09:45:08

一些简短的回答已经被采纳了,因为您可能希望在其他Web表单中执行此操作,因此这里提供了一个扩展的解决方案,该解决方案将统一影响项目中的所有Web表单(包括根据请求获取文件名的代码)。

通过将此代码放入文件中,为System.Web.UI.Page类创建一个扩展方法。您需要使用.NET 3.5。

代码语言:javascript
复制
namespace MyExtensions {
    using System.Web.UI;

    static public class Extensions {

        /* You can stuff anybody else's logic into this
         *  method to get the page filename, whichever implementation you prefer.
         */
        static public string GetFilename(this Page p) {
            // Extract filename.
            return p.AppRelativeVirtualPath.Substring(
                p.AppRelativeVirtualPath.IndexOf("/") + 1
                );
        }

    }
}

要从任何ASP.NET网页表单获取文件名(例如,在您指定的load方法中):

代码语言:javascript
复制
    using MyExtensions;

    protected void Page_Load(object sender, EventArgs e) {
        string aspxFileName = this.GetFilename();
    }

在项目中的任何Web窗体上调用此方法。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1811211

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档