سؤال

لدي صفحة ويب ASP.NET2.0 مع زر إرسال. عند النقر فوق المستخدم، أقوم بإنشاء ملف XML على الطاير وإرجاع ذلك نتيجة لذلك.

هنا هو الرمز:

protected void submitBtn_Click(object sender, EventArgs e)
    {
        string result = this.ProduceMyXmlResult();

        this.Response.Clear();
        this.Response.StatusCode = 200;
        this.Response.ContentType = "application/xml";
        this.Response.ContentEncoding = System.Text.Encoding.UTF8;
        this.Response.Write(result);
        this.Response.End();
    }

قطعة التعليمات البرمجية تفعل بالضبط ما أريد. ومع ذلك، لا يتعرف المتصفح على ملف XML كصفحة جديدة، لذلك لا يأخذني الزر الخلفي إلى صفحتي الأصلية. لماذا وكيف يمكنني التغلب على ذلك؟

هل كانت مفيدة؟

المحلول

أبسط طريقة للقيام بذلك، أعتقد أن إنشاء صفحة منفصلة تنفذ هذا الرمز على Page_Load ()، وإعادة التوجيه إليها عند الضغط على الزر.

السبب في عدم وجود ملاحة للخلف هو أن المتصفح غير مدرك قد تغيرت الصفحة. نظرا لأن زر إرسال مسبق، فإنك تقوم بإرجاع بيانات XML كاستجابة لهذا الخطأ، فسيظهر للمتصفح كما لو كان هذا مجرد بعض تحويل الصفحة الحالية (كما لو كنت، قل ذلك، غيرت نص عنصر تحكم التسمية).

إن الطريقة "الصحيحة" لإنجازها ستكون مع نوع ما من معالج HTTP، لكن ليس لدي خبرة لاقتراح الطريقة الصحيحة للقيام بذلك وكنت قد عملت بالفعل كود C # في هذه الطريقة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top