加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 更好的方式来获取页面名称

发布时间:2020-12-16 00:36:05 所属栏目:asp.Net 来源:网络整理
导读:我正在使用它来获取当前页面的名称。这样返回例如MyPage.aspx public string GetCurrentPageName(){ string urlPath = Request.Url.AbsolutePath; FileInfo fileInfo = new FileInfo(urlPath); string pageName = fileInfo.Name; return pageName;} 必须有一
我正在使用它来获取当前页面的名称。这样返回例如MyPage.aspx
public string GetCurrentPageName()
{
    string urlPath = Request.Url.AbsolutePath;
    FileInfo fileInfo = new FileInfo(urlPath);
    string pageName = fileInfo.Name;
    return pageName;
}

必须有一个更简单的方法?意思是在.NET框架中必须有一个现有的方法或属性。

解决方法

解释问题的方式是检索当前正在执行的aspx页面的名称(即System.Web.UI.Page)的有效方式。

如果这是真的,你不应该处理任何FileInfo对象或者点击filesytem。只需在页面对象上使用AppRelativeVirtualPath property。

using System;
using System.IO;
using System.Web.UI;

namespace WebApplication1
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender,EventArgs e)
        {
            string pageName = Path.GetFileNameWithoutExtension(Page.AppRelativeVirtualPath);
        }
    }
}

如果您不能获得当前执行页面的完全限定(或“根”)路径,则可以使用Server.MapPath

string path = Server.MapPath(Page.AppRelativeVirtualPath);

使用AppRelativeVirtualPath即使在使用url重写时也可以使用,因为它不使用Request.Url(由用户提供),您无需担心潜在的恶意数据。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读