asp.net将asp.net页面转换为Page变量

时间:2012-07-10 21:44:38

标签: c# asp.net

  

可能重复:
  Load an ASP.NET 2.0 aspx page using System.Reflection?

在下面的代码中,我遍历我的项目并获取.aspx页面的文件路径。如何将它们转换为Page变量。我尝试了以下代码,但它无法正常工作。我收到以下错误消息

Invalid cast from 'System.String' to 'System.Web.UI.Page'.

请帮帮我。

感谢

protected void Page_Load(object sender, EventArgs e)
{

    string[] filePaths = Directory.GetFiles(Server.MapPath("~/"), "*.*", SearchOption.AllDirectories);

    foreach (string filepath in filePaths)
    {
        if (filepath.EndsWith(".aspx"))
        {
            Response.Write(filepath + "<br/>");

            Page page = (Page)Convert.ChangeType(filepath, typeof(Page));

        }
    }


}

1 个答案:

答案 0 :(得分:1)

根据您的上一条评论“我正在尝试浏览项目中的所有页面,并通过每个页面识别标签和按钮控件。”所以我认为你需要的是:

  1. 制作一些所有页面都继承的基类
  2. 在该基类中加入一些逻辑(可能会覆盖PreRender,不清楚你想用控件做什么)并在这些页面上找到所有控件(Label和Button)(你可能需要实现自定义的FindControl方法,因为FindControl in ASP.NET is not recursive)。
  3. 这比你试图直接加载.aspx等更好,更干净。