how can i create a dynamic page in asp.net (C#)?

14,227

Solution 1

If you are asking about generating ASP.NET pages at runtime, that is impossible. The reason is the following:

You need to compile the code of the ASP.NET page before run it. And that is impossible after your web application has started.

However, if you are asking about navigation between pages, then, you could use Response.Redirect:

Response.Redirect("http://www.stackoverflow.com/");

Solution 2

You can create new Dynamic File in ASP.net website (Not in a ASP.net Web Application). But there is a problem . Once you created a file the whole Website will be restarted for compiling the newly created file. So you Session data will be lost.

Here is the code to create new file.

    string fielName = Server.MapPath("~/file.aspx");
        //File.Create(fielName);
        //File.AppendText(fielName);


        // create a writer and open the file
        TextWriter tw = new StreamWriter(fielName);

        // write a line of text to the file
        tw.WriteLine(@"<%@ Page Language=""C#"" AutoEventWireup=""true""  CodeFile=""file.aspx.cs"" Inherits=""file"" %>

<!DOCTYPE html PUBLIC ""-//W3C//DTD XHTML 1.0 Transitional//EN"" ""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"">

<html xmlns=""http://www.w3.org/1999/xhtml"">
<head runat=""server"">
    <title></title>
</head>
<body>
    <form id=""form1"" runat=""server"">
    <div>

    </div>
    </form>
</body>
</html>
");

        // close the stream
        tw.Close();


        tw = new StreamWriter(fielName + ".cs");

        // write a line of text to the file
        tw.WriteLine(@"using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;

public partial class file : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
       Response.Write(""new File "");

    }
}
");

        // close the stream
        tw.Close();
Share:
14,227

Related videos on Youtube

AB Vyas
Author by

AB Vyas

Good Programming knowledge in asp.net, MVC, C#, VB, Javascript, HTML, C, Jquery, CSS3, Angular, VueJS. I have 10 plus years of experience in Vast field of Programming, Designing, Development and Maintain Websites and various Software. I eager to know more and more related to Programming world. I also have very good knowledge in sql server. Work well with tight deadlines. Good Problem Solving skills. Specialties Website Developement Asp.net Asp.net MVC C# VB Sql Server Javascript Jquery CSS3 HTML5 Bootstrap AngularJS Advance JavaScript ECMAScript 6 OOPs VueJS FabricJS

Updated on June 04, 2022

Comments

  • AB Vyas
    AB Vyas almost 2 years

    I added a page "First.aspx" in my website application. Inside First.aspx page i have a button named btnbutton. "onclick" Event of "btnbutton" a new dynamic page should open. how can i do this.? Please Remember the new dynamic page created, is not in existing in the application. This page should be created at runtime and dynamic also. please help me out!

    • eugeneK
      eugeneK almost 13 years
      It would be much better if you will explain in plain English ( without programming jargon ) what are you trying to achieve.
  • Mitesh Jain
    Mitesh Jain almost 11 years
    suppose i have to give dynamic name of my page written in my text box and also change the name of CodeFile="" Inherits="" which is in html page what shall i do?? i have tried CodeFile="""+Textbox1.Text+""" Inherits="""+Textbox1.Text+""" but showing error
  • Sreekumar P
    Sreekumar P almost 11 years
    wht error you are getting..? you have to change the name here also .. Server.MapPath("~/file.aspx")
  • Mitesh Jain
    Mitesh Jain almost 11 years
    The error i am getting is:- Compiler Error Message: CS1010: Newline in constant // write a line of text to the file tw.WriteLine(@"<%@ Page Language=""C#"" AutoEventWireup=""true"" CodeFile="""+TextBox1.Text+".cs"" Inherits="""+TextBox1.Text+""" %> <!DOCTYPE html PUBLIC ""-//W3C//DTD XHTML 1.0 Transitional//EN"" ""w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"">
  • Sreekumar P
    Sreekumar P almost 11 years
    this is just a problem with formatting the literal string. Try this code tw.WriteLine(@"<%@ Page Language=""C#"" AutoEventWireup=""true"" CodeFile=""" + TextBox1.Text + @".cs"" Inherits=""" + TextBox1.Text + @"""