XML الكلمات في آسيا والمحيط الهادئ: مربع نص يمنع عناصر تحكم أخرى تعمل؟

StackOverflow https://stackoverflow.com/questions/1603700

سؤال

ولدي سلسلة من الضوابط على صفحة ASP. بعضها داخل UpdatePanel وبعضها لا.

إذا وضعت علامة XML في واحد من مربعات النص (على سبيل المثال، "<foo>") بعد ذلك كل الضوابط داخل UpdatePanel لا تعمل. حالما تتم إزالة العلامات، كل شيء على ما يرام.

وبلدي زر "إرسال" هو في UpdatePanel وتوقف على btnSubmit_Click هو ضرب فقط عندما لم تكن هناك علامات في مربعات النص.

وأنا منذ فترة طويلة C # ديف ولكن الجديد تماما لASP.NET لذلك قد يكون في عداد المفقودين شيء واضح ... هذه ليست مجرد سلوك أتوقع.

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

المحلول

إذا كنت لاتخاذ UpdatePanel خارج الصفحة، وكنت تجد أن إعادة النشر كان يسبب خطأ لأن صافي يعتقد أن "<فو>" قليلا يحتمل أن تكون خطرة للبيانات أن يقبل في الملقم. انظر هذا السؤال على ستاكوفيرفلوو. لم تشاهد الخطأ لأن HTML صفحة الخطأ يتم إرجاع لدعوة اياكس وUpdatePanel بدلا من توجيه لك المتصفح، وUpdatePanel لا أعرف ماذا أفعل معها.

ويمكنك إيقاف التحقق عن طريق إضافة

ValidateRequest="false"

وإلى التوجيه في الجزء العلوي من ملف ASPX الخاص بك. أو يمكنك تعديل الملف web.config للحصول على نفس التأثير مباشرة عبر تطبيق الويب.

نصائح أخرى

ولا يمكنك وضع العلامات في جزء النص. يجب HTML-الهروب أية أحرف الترميز داخل جزء النص تماما كما يجب مع أي عنصر آخر.

<textarea>&lt;foo> &amp; &lt;bar></textarea>

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

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