-1

以下は C# のコードの一部です。メールを送信し、メッセージ ボックスを表示してから、「Multihotelbook.aspx」ページに直接移動しますが、メッセージ ボックスを表示せずにページに直接移動します。どうしてか分かりません。助けが必要

emailClient.Send(メッセージ);

                // Response.Write("<script>window.alert('Email sent')</script>");
                //ClientScript.RegisterStartupScript(typeof(Page), "myscript", "<script>alert('Email sent');</script>");
                // System.Windows.Forms.MessageBox.Show("Email sent");
               // MessageBox.Show("Email sent");
               // MessageBoxResult result = MessageBox.Show("Email sent", "Confirmation");


            //ClientScript.RegisterStartupScript(typeof(Page), "myscript", "<script>alert('Email sent');</script>");
            //ScriptManager.RegisterStartupScript(this, typeof(string), "Message", "confirm('Email sent');", true);
            //ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "KEY", "alert('Email sent')", true);
            Page.ClientScript.RegisterStartupScript(typeof(string), "alert", "<script>alert('Email sent')</script>");
            Response.Redirect("Multihotelbook.aspx");
4

1 に答える 1

0

これは...ASP.NETコードのように見えます。MessageBoxASP.NETにはありません。を完全に参照する必要があることに注意してくださいSystem.Windows.Forms。これも参照として追加する必要があると思います。WindowsフォームとASP.NETは2つの非常に異なるものです。

正確に何を達成しようとしていますか?JavaScriptを表示していますalert()か?その場合は、応答に追加のJavaScriptコードを含めることができます。

を除いて...あなたもこれをやっています:

Response.Redirect("Multihotelbook.aspx");

これは、クライアントへの応答が、クライアントにに移動するように指示するヘッダーによって破壊されていることを意味しますMultihotelbook.aspx。したがって、クライアントは、応答に含まれている他のもの、基本的にはに含まれているものを見ることはありませんRegisterStartupScript

このコードが実行された後、クライアントはになりますMultihotelbook.aspx。そのページにJavaScriptがない限りalert()、ブラウザにはJavaScriptが表示されません。

あなたが試みることができる1つのアプローチは、そのページのMultihotelbook.aspxようなものにフラグを渡すことであり、その値をチェックし、それがtrueに設定されている場合は、ページにJavaScriptコードを含めて表示します(おそらくすでに試しているように使用します)。Multihotelbook.aspx?emailSent=truePage_Loadalert()RegisterStartupScript

于 2012-12-19T02:27:11.400 に答える