【解決方法】Response.redirect を実行する前にメッセージを表示する


やあ、
別のページに response.redirect を実行する前に、(サーバー側からクライアント側に) メッセージを表示しようとすると問題が発生します。
問題は、メッセージを表示するコードを配置したことですが、ページには表示されず、リダイレクトは行われますが、メッセージは表示されません。

メッセージを表示するために使用しているコードは次のとおりです。

VB
sScript.AppendLine("<script type=""text/javascript"">")
sScript.AppendLine("  alert('La operacion no ha sido exitosa');")
sScript.AppendLine("</script>")
ScriptManager.RegisterStartupScript(Me, Me.GetType, "AlertaJS", sScript.ToString, False)

sScript は文字列ビルダーです

サーバー側からクライアント側にメッセージを表示する他の方法はありますか?

ありがとう!

解決策 1

Response.Redirect を使用すると、ASP.NET がヘッダーを追加して 302 を発行し、オブジェクトが移動しました。 ブラウザーはヘッダーを処理し、新しい URL を要求するため、ページが実際に読み込まれる前に、このメソッドは機能しません。

次のようなアラートの後に JavaScript を追加できます。

window.location.href = 'http://my new location';

解決策 3

こんにちはシェリム、
Response.Redirect の前にメッセージを表示[^]

お役に立てば幸いです。

解決策 2

このヘッダーを使用してページにメッセージを配置します。

HTML
<meta http-equiv="refresh" content="5;url=Default.aspx" />

このページにリダイレクトします。
このヘッダーは、5 秒後に “default.aspx” にリダイレクトしますが、それ以前にメッセージを見ることができます。

例 :

HTML
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Access Denied</title>
    <meta http-equiv="refresh" content="5;url=Default.aspx" />
    <link rel="Stylesheet" type="text/css" href="default.css" />
</head>
<body dir="rtl">
    <form id="form1" runat="server">
    <div class="error">
        <img alt="error" src="images\cross1.png" width=50 height=50 />
       access denied.</div>
        <br />
        <br />
        <a href="Default.aspx">go to home page</a>


    </form>
</body>

コメント

タイトルとURLをコピーしました