إعادة تعيين القيمة لمعلمة سلسلة الاستعلام

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

  •  09-06-2019
  •  | 
  •  

سؤال

لدي معلمة سلسلة استعلام "showall" في عنوان url، وتتم إضافة المعلمة ديناميكيًا عند النقر فوق الزر "إظهار الكل/إظهار الصفحات".

أريد القدرة على تبديل قيمة معلمة سلسلة الاستعلام "showall" اعتمادًا على قيام المستخدم بالنقر فوق الزر "إظهار الكل/إظهار الصفحات".

أقوم ببعض "إذا" و string.Replace() على عنوان url، هل هناك طريقة أفضل؟

تتم جميع عمليات التلاعب على الخادم.

ملاحظة. توران، اقتراح جيد، ولكن لا بد لي من استخدام معلمة URL بسبب بعض المشكلات الأخرى.

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

المحلول

فقط لتوضيح إجابة توران:

يستخدم:
<asp:HiddenField ID="ShowAll" Value="False" runat="server" />

لتبديل حالتك:

protected void ToggleState(object sender, EventArgs e)
{
    //parse string as boolean, invert, and convert back to string
    ShowAll.Value = (!Boolean.Parse(ShowAll.Value)).ToString();
}

نصائح أخرى

قد يكون البديل القذر الآخر هو استخدام إدخال مخفي وضبطه على التشغيل/الإيقاف بدلاً من معالجة عنوان url.

هل سيكون الأمر مجهودًا كبيرًا لمجرد ترميز القيمة في عنوان URL (أعلم أنها ليست لطيفة جدًا) بقيمة افتراضية أو صحيحة ثم فقط

booleanVar = !booleanVar;

تشغيل على كل تحميل الصفحة؟

على الأقل هذا من شأنه أن يبتعد عن الحاجة إلى وجود ifs متداخلة لمعالجة عنوان URL.

لست متأكدًا بناءً على السؤال، لكن أليس هذا هو المكان معالجات HTTP يهب لنجدة؟ألا ينبغي عليك التعامل مع التغيير المتغير على الكائن قبل عرض الصفحة في هذه الحالة إذن؟

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