Web サイトに First.aspx という 1 つのページがあり、彼のページには単純な asp.net ボタンがあります。
私が欲しいのは、そのボタンのクリックイベントで、新しいウィンドウまたはタブで開くことができる新しい動的な「ページ」をレンダリングすることです。
どうすればこれを達成できますか?
新しいページは Web サイトにありません。このページの作成は実行時に作成する必要があり、動的である必要があります。
protected void Button1_Click(object sender, EventArgs e)
{
File.Copy(Server.MapPath("") + "\\abc.aspx", (Server.MapPath("") + "\\" + TextBox1.Text + ".aspx"));
File.Copy(Server.MapPath("") + "\\abc.aspx.cs", (Server.MapPath("") + "\\" + TextBox1.Text + ".aspx.cs"));
//.aspx Page
StreamReader sr = new StreamReader(Server.MapPath("") + "\\" + TextBox1.Text + ".aspx");
string fileContent = sr.ReadToEnd();
sr.Close();
using (StreamWriter Sw = new StreamWriter(Server.MapPath("") + "\\" + TextBox1.Text + ".aspx"))
{
fileContent = fileContent.Replace("abc", TextBox1.Text);
Sw.WriteLine(fileContent);
Sw.Flush();
Sw.Close();
}
//.aspx.cs Page
StreamReader sr1 = new StreamReader(Server.MapPath("") + "\\" + TextBox1.Text + ".aspx.cs");
string fileContent1 = sr1.ReadToEnd();
sr1.Close();
using (StreamWriter Sw1 = new StreamWriter(Server.MapPath("") + "\\" + TextBox1.Text + ".aspx.cs"))
{
fileContent1 = fileContent1.Replace("abc", TextBox1.Text);
Sw1.WriteLine(fileContent1);
Sw1.Flush();
Sw1.Close();
}
}
しないことをお勧めします。サーバー側の言語を使用しているため。ページを物理的に作成する必要はありません。Web サイトにルーティングを実装することで、URL タイプに基づいてページ コンテンツを動的に表示できます。
DB に情報を格納することで同様の結果を達成でき、データベースから読み取り、URL などの他の情報に応じてページにデータを入力する汎用ページ「テンプレート」を使用できる場合に、物理ページを作成する理由がわかりません。 .
とにかく、これはあなたの質問に対する解決策ですが、やや古いですが... aspnetでaspxページを動的に作成しています