How to create aspx page at run time in ASP.NET

ASPX stands for active server page extension. We know that visual studio create a aspx page for dynamic application. Also one another page is created for business logics. If you want to create both pages(presentation+business logic) through code file then first to create two array for both pages. After that save the file through file handling in same solution.

Source Code

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
 

</head>
<body>
    <form id="form1" runat="server">
      Enter page Name  <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br />
        <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />

        <br />
        <br />
        <asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="Created Page" />

    </form>
 
     

</body>
</html>

Code Behind file

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class Default2 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
      
    }



    protected void Button1_Click(object sender, EventArgs e)
    {

        String[] sourcecode ={"<%@ Page Language=\"C#\" AutoEventWireup=\"true\" CodeFile=\""+  TextBox1.Text.Trim()+".aspx.cs\" Inherits=\""+ TextBox1.Text.Trim()+"\" %>",
                                 "<html xmlns=\"http://www.w3.org/1999/xhtml\">",
                                 "<head runat=\"server\">",
                                 "<title></title>",
                                " </head>",
"<body>",
    "<form id=\"form1\" runat=\"server\">",
    "</form>",
    "</body>",
"</html>"
                             };

        String[] codefile = {
                                "using System;",
"using System.Collections.Generic;",
"using System.IO;",
"using System.Linq;",
"using System.Web;",
"using System.Web.UI;",
"using System.Web.UI.WebControls;",

"public partial class "+ TextBox1.Text.Trim()+" : System.Web.UI.Page",
"{",
    "protected void Page_Load(object sender, EventArgs e)",
    "{",
      
    "}",
    "}"};

        File.WriteAllLines(Server.MapPath("" + TextBox1.Text.Trim() + ".aspx"), sourcecode);
        File.WriteAllLines(Server.MapPath("" + TextBox1.Text.Trim() + ".aspx.cs"), codefile);
        Response.Write("Page Created");

    }
    protected void Button2_Click(object sender, EventArgs e)
    {
        Response.Redirect("~/" + TextBox1.Text);
    }
}

Code generate the following output

How to create aspx page at run time in ASP.NET How to create aspx page at run time in ASP.NET Reviewed by Jacob Lefore on December 01, 2014 Rating: 5

No comments