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