如何在asp.net(C#)中创建动态页面?

时间:2011-06-01 08:43:54

标签: c# asp.net

我在网站应用程序中添加了一个“First.aspx”页面。在First.aspx页面中,我有一个名为btnbutton的按钮。     “onclick”“btnbutton”事件应该打开一个新的动态页面。     我怎样才能做到这一点。?     请记住,创建的新动态页面不在应用程序中。此页面应在运行时创建并动态创建。     请帮帮我!

3 个答案:

答案 0 :(得分:2)

如果您要求在运行时生成 ASP.NET 页面,那是不可能的。原因如下:

  

你需要编译的代码   运行之前的ASP.NET页面。然后   你的网络后是不可能的   申请已经开始。

但是,如果您询问网页之间的导航,那么您可以使用Response.Redirect

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

答案 1 :(得分:2)

您可以在ASP.net网站(不在ASP.net Web应用程序中)中创建新的动态文件。 但有一个问题 。创建文件后,将重新启动整个网站以编译新创建的文件。因此,会话数据将丢失。

以下是创建新文件的代码。

    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();

答案 2 :(得分:1)

我在这个链接中找到了解决方案,它非常有用: How to create ASPX Page Dynamically