[ad_1]
أهلاً بكم،
أنا جديد في vb.net، وأقوم بتنفيذ مشروع واحد يتكون من ثلاث وحدات مثل الصفحة الرئيسية وصفحة التسجيل وأخيرًا صفحة اتصل بنا باستخدام ASP.NET. مشكلتي هي صفحة اتصل بنا، أي أنه يمكن للمستخدم ملء تفاصيل الاتصال التي أقوم بإنشائها في صفحة اتصل بنا. بمجرد أن يتمكن المستخدم من ملء النموذج والنقر على زر الإرسال، وبعد ذلك تظهر نافذة منبثقة واحدة مثل “شكرًا لك” للاتصال بنا. سنرد عليك قريبًا” (باستخدام البرنامج النصي) ابحث عن الرمز أدناه) واضطررت إلى الضغط على زر “موافق” حتى تختفي الرسالة. سؤالي هو عندما أنقر على الزر “موافق”، ستحتاج الصفحة إلى الانتقال إلى الصفحة الرئيسية ولكن لن يتم إدخالها في الكود الخاص بي. يرجى معرفة الكود أدناه الذي استخدمته في صفحة اتصل بنا. أرجو أن تعطيني قطرة من الحل فهو مفيد جداً بالنسبة لي.
الكود الخاص بي هو:
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>")
يعتبر،
[ad_2]
コメント