3

给定一个 URL,我必须能够知道该 URL 处的页面类型是什么。例如,假设我有几页。

//first.aspx
public partial class FirstPage : System.Web.UI.Page { }

//second.aspx
public partial class SecondPage : MyCustomPageType { }

我希望能够以以下方式调用方法,结果如下:

GetPageTypeByURL("first.aspx");     //"FirstPage"
GetPageTypeByURL("second.aspx");        //"SecondPage"

这可能吗?我怎样才能做到这一点?

4

4 回答 4

5

这个答案中,您似乎可以获得特定页面的类。然后,您可以使用反射来确定其基本类型。(注意:我没有尝试过,这只是一个建议。)

System.Web.Compilation.BuildManager.GetCompiledType(Me.Request.Url.AbsolutePath)
于 2012-05-10T19:51:20.690 回答
1

那这个呢?

public Type GetPageTypeByURL(string url)
{
    object page = BuildManager.CreateInstanceFromVirtualPath(url, typeof(object));
    return page.GetType().BaseType.BaseType;
}

用法:

Type pageType = GetPageTypeByURL("~/default.aspx");
于 2012-05-10T20:24:45.527 回答
0

只是一个想法:我假设您从其他程序调用该页面。获取 HTML,搜索您的区别 HTML/隐藏元素,告诉您页面是什么。如果您在服务器上,只需将页面加载为文本文件并阅读即可。

于 2012-05-10T19:58:21.950 回答
0
Page page = (Page)System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(url, typeof(Page));
CustomerPage page = (CustomerPage) SomeMagicalPageCreater.CreatePage("CustomerPage.aspx");

https://forums.asp.net/t/1315395.aspx 这是我发现的。

于 2018-09-04T18:56:34.773 回答