سؤال

لقد واجهت مؤخرًا مشكلة حيث كانت القيمة فارغة إذا تم الوصول إليها باستخدام Request.Form ولكنها جيدة إذا تم استردادها باستخدام Request.Params.ما هي الاختلافات بين هذه الأساليب التي يمكن أن تسبب هذا؟

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

المحلول

يتضمن Request.Form فقط المتغيرات المنشورة من خلال نموذج، بينما يتضمن Request.Params كلا من متغيرات النموذج المنشورة والحصول على المتغيرات المحددة كمعلمات URL.

نصائح أخرى

يحتوي Request.Params على مجموعة من QueryString والنموذج وملفات تعريف الارتباط ومتغيرات الخادم (تمت إضافتها بهذا الترتيب).

الفرق هو أنه إذا كان لديك متغير نموذج يسمى "key1" موجود في كل من QueryString والنموذج، فسيقوم Request.Params["key1"] بإرجاع قيمة QueryString وسيقوم Request.Params.GetValues("key1") بإرجاع قيمة مجموعة من [قيمة سلسلة الاستعلام، قيمة النموذج].

إذا كانت هناك قيم نماذج أو ملفات تعريف ارتباط متعددة بنفس المفتاح، فستتم إضافة هذه القيم إلى المصفوفة التي يتم إرجاعها بواسطة GetValues ​​(على سبيل المثال.لن تقوم GetValues ​​بإرجاع صفيف خشنة)

كان السبب هو أن القيمة التي كنت أستردها كانت من عنصر نموذج، ولكن تم الإرسال من خلال رابط + JQuery، وليس من خلال إرسال زر النموذج.

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