Response.Redirect باستخدام vb.net


أهلاً بكم،

أنا جديد في vb.net، وأقوم بتنفيذ مشروع واحد يتكون من ثلاث وحدات مثل الصفحة الرئيسية وصفحة التسجيل وأخيرًا صفحة اتصل بنا باستخدام ASP.NET. مشكلتي هي صفحة اتصل بنا، أي أنه يمكن للمستخدم ملء تفاصيل الاتصال التي أقوم بإنشائها في صفحة اتصل بنا. بمجرد أن يتمكن المستخدم من ملء النموذج والنقر على زر الإرسال، وبعد ذلك تظهر نافذة منبثقة واحدة مثل “شكرًا لك” للاتصال بنا. سنرد عليك قريبًا” (باستخدام البرنامج النصي) ابحث عن الرمز أدناه) واضطررت إلى الضغط على زر “موافق” حتى تختفي الرسالة. سؤالي هو عندما أنقر على الزر “موافق”، ستحتاج الصفحة إلى الانتقال إلى الصفحة الرئيسية ولكن لن يتم إدخالها في الكود الخاص بي. يرجى معرفة الكود أدناه الذي استخدمته في صفحة اتصل بنا. أرجو أن تعطيني قطرة من الحل فهو مفيد جداً بالنسبة لي.

الكود الخاص بي هو:

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، فإنه عادةً ما يؤدي إلى حدوث خطأ عند محاولة إعادة توجيه الرد عندما يكون الشخص قد كتب بالفعل إلى الدفق. ما تريده على الأرجح هو وضع بعض التعليمات البرمجية بعد التنبيه(“…”); استدعاء من شأنه أن يجعل المتصفح ينتقل إلى Index.asp الخاص بك مثل window.location.assis(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>")

يعتبر،

– مانفريد

コメント

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