1

Web サイトに First.aspx という 1 つのページがあり、彼のページには単純な asp.net ボタンがあります。

私が欲しいのは、そのボタンのクリックイベントで、新しいウィンドウまたはタブで開くことができる新しい動的な「ページ」をレンダリングすることです。

どうすればこれを達成できますか?

新しいページは Web サイトにありません。このページの作成は実行時に作成する必要があり、動的である必要があります。

4

3 に答える 3

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

    }
于 2012-08-24T11:15:46.133 に答える
1

しないことをお勧めします。サーバー側の言語を使用しているため。ページを物理的に作成する必要はありません。Web サイトにルーティングを実装することで、URL タイプに基づいてページ コンテンツを動的に表示できます。

于 2012-08-24T10:13:24.893 に答える
0

DB に情報を格納することで同様の結果を達成でき、データベースから読み取り、URL などの他の情報に応じてページにデータを入力する汎用ページ「テンプレート」を使用できる場合に、物理ページを作成する理由がわかりません。 .

とにかく、これはあなたの質問に対する解決策ですが、やや古いですが... aspnetでaspxページを動的に作成しています

于 2012-08-24T10:11:07.413 に答える