vb.net を使用した Response.Redirect


こんにちは、みんな、

私はvb.netの初心者で、ホームページ、サインアップページ、最後にASP.NETを使用したお問い合わせページなどの3つのモジュールを持つ1つのプロジェクトを行っています。 私の問題はお問い合わせページです。つまり、ユーザーはお問い合わせページで作成した連絡先の詳細を入力できます。ユーザーがフォームに入力してボタンをクリックして送信できるようになると、「ありがとう」のようなポップアップウィンドウが表示されますお問い合わせいただきありがとうございます。まもなくご連絡いたします」(スクリプトを使用して、以下のコードを見つけます)メッセージを消すには、[OK]ボタンをタップする必要がありました。 私の質問は、[OK]ボタンをクリックすると、ページはホームページに移動する必要がありますが、私のコードには表示されません。 お問い合わせページで使用した以下のコードを見つけてください。 私にとって非常に役立つ解決策を一滴教えてください…

私のコードは次のとおりです。

VB
Protected Sub imgLogin_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles imgLogin.Click
        Dim resulttosend As String
        Dim subject As String = "  User Request:"
        Dim msgto As String = ConfigurationManager.AppSettings("contactus_email")
        Dim msgfrom As String = ConfigurationManager.AppSettings("SendMail_from")
        Dim msgcc As String = ""
        Dim msgbcc As String = ""
        Dim msgdesc As String
        msgdesc = "Hi Administrator,<br><br>" & _
                        "Name: " & Txtname.Text & "<br>" & _
                        "City: " & txtCompany.Text & "<br>" & _
                        "Tel: " & Txttelephone.Text & "<br>" & _
                        "Email: " & Txtemail.Text & "<br>" & _
                        "Additional Information: " & Txtinfo.Text & "<br>"


        Dim clsobj As clsCommon = New clsCommon

        resulttosend = clsobj.fnsendMail(msgfrom, msgto, msgcc, msgbcc, subject, msgdesc)

        If resulttosend = "" Then
            
            Response.Write("<script language='javascript'>alert('Thank you for contacting us. We will get back to you shortly');</script>")
Response.Redirect("Index.aspx")
            txtCompany.Text = ""
            Txtemail.Text = ""
            Txttelephone.Text = ""
            Txtinfo.Text = ""
        Else
            lblStatus.Text = resulttosend
           
            Trace.Warn("ibSend_Click", "exception occured sending mail-->" & resulttosend)
        End If
    End Sub

解決策 1

ここで実行されているコードはサーバー側にあります。 Response.Write は HTML JavaScript コードをブラウザーに送信しており、アラート ボックスがブラウザーに表示される前に、imgLogin_Click メソッド内の残りのコード全体が実行されます。 これにより、すぐに次の問題に注意が向けられます。
Response.Redirect は HTTP ヘッダーに情報を追加するため、既にストリームに書き込まれている場合に Reponse をリダイレクトしようとすると、通常はエラーが発生します。 おそらく必要なのは、alert(“…”); の後にコードを配置することです。 ブラウザが Index.asp のようにナビゲートするようにする呼び出し window.location.assign(url)[^].

Response.Write("<script language='javascript'>alert('Thank you for contacting us. We will get back to you shortly'); window.location.assign('http://you.domain.xx/path/Index.asp');</script>")

よろしく、

— マンフレッド



Source link

コメント

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