Phản hồi.Redirect sử dụng vb.net

lập trình


Chào mọi người,

Tôi mới sử dụng vb.net, đang thực hiện một dự án có ba mô-đun như trang chủ, trang đăng ký và cuối cùng là trang liên hệ với chúng tôi bằng ASP.NET. Vấn đề của tôi là trang liên hệ với chúng tôi, tức là người dùng có thể điền chi tiết liên hệ mà tôi tạo trong trang liên hệ với chúng tôi. Khi người dùng có thể điền vào biểu mẫu và nhấp vào nút gửi, sau đó nó sẽ hiển thị một cửa sổ bật lên như “cảm ơn bạn vì đã liên hệ với chúng tôi. Chúng tôi sẽ sớm liên hệ lại với bạn” (sử dụng tập lệnh) tìm mã bên dưới) và tôi phải nhấn vào nút ok để tin nhắn biến mất. Câu hỏi của tôi là khi tôi nhấp vào nút ok, trang sẽ cần chuyển đến trang chủ nhưng nó không có trong mã của tôi. vui lòng tìm hiểu mã bên dưới mà tôi đã sử dụng trong trang liên hệ với chúng tôi. xin vui lòng cho tôi một giải pháp rất hữu ích cho tôi …

mã của tôi là:

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

Giải pháp 1

Mã đang thực thi ở đây là ở phía máy chủ. Response.Write của bạn đang gửi mã JavaScript HTML tới trình duyệt và toàn bộ phần còn lại của mã bên trong phương thức imgLogin_Click được thực thi trước khi hộp cảnh báo thậm chí được hiển thị trong trình duyệt. Điều này ngay lập tức khiến tôi chú ý đến một vấn đề ở đây:
Vì Response.Redirect thêm thông tin vào tiêu đề HTTP nên thường dẫn đến lỗi khi cố gắng Chuyển hướng phản hồi khi một thông tin đã được ghi vào luồng. Điều bạn có thể muốn là đặt một số mã sau cảnh báo(“…”); lệnh gọi đó sẽ khiến trình duyệt điều hướng đến Index.asp của bạn như window.location.sign(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>")

Trân trọng,

— Manfred

コメント

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