باستخدام قائمة ديناميكية من مربعات الاختيار في طريقة عرض، وكيفية إنشاء النموذج

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

  •  19-09-2019
  •  | 
  •  

سؤال

لدي توزيع تطبيقات ASP MVC 2 حيث أرغب في عرض قائمة من خانات الاختيار التي يمكن للمستخدم تحديدها، بناء على قائمة السجلات في قاعدة بيانات. لعرض القائمة يحتوي نموذجي على كائن قائمة والعرض يحتوي على foreach، وتخرج HTML.checkbox لكل عنصر في القائمة.

هل هناك طريقة للحصول على النموذج المكتمل مع خانات الاختيار المحددة، بالنظر إلى أن النموذج لا يمكن أن يحتوي على خصائص محددة لكل مربع اختيار، لأن القائمة ديناميكية؟ أو هل يجب علي التكرار يدويا من خلال أشكال المتغيرات بنفسي؟

تحرير: تفاصيل إضافية حسب تعليق Sabanitoلذلك في سيناريو عرض بسيط / نموذجي، إذا كان نموذجي خاصا بممتلكات تسمى الخاصية 1، فهذا رأيي مخرجي نصية للميزات 1، عند نشر النموذج عبر زر إرسال، سيقوم إطار MVC تلقائيا بملء نموذج مع خاصية 1 التي تحتوي على النص تم إدخال ذلك في مربع النص ونقل هذا النموذج إلى إجراء وحدات التحكم.

لأنني أتعامل مع قائمة ديناميكية من الخيارات يمكن للمستخدم التحقق، لا يمكنني كتابة خصائص منطقية صريحة في نموذجي وإنشاء خانات الاختيار بشكل صريح في رأيي. نظرا لأن قائمتي ديناميكية، فأنا أتساءل عما إذا كانت هناك طرق لإنشاء نموذجي وعرضها بحيث يكون إطار MVC قادرا على ملء النموذج بشكل صحيح عند نشر النموذج.

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

المحلول

إليك ما سأفعله:

هل تواجه أي مشاكل توليد مربع الاختيار ديناميكيا؟

إذا لم يكن كذلك، قم بإنشاء خاصية على ViewModel الخاص بك هو:

public List<string> CheckboxResults { get; set; }

عند إنشاء خانة الاختيار الخاصة بك في العرض، تأكد من مشاركة الاسم = "CheckBoxSresults". عندما ترى MVC ViewModel الخاص بك كمعلمة في طريقة الإجراء، سيتم ربطها تلقائيا ووضع كل النتائج "CheckBoxults" في القائمة (بالإضافة إلى خصائص ViewModel الأخرى الأخرى). الآن لديك قائمة ديناميكية تستند إلى خانة الاختيار التي تم فحصها على المستخدم الخاص بك أنه يمكنك إرسالها إلى DomainModel الخاص بك أو أينما كان.

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

نصائح أخرى

استخدم ViewModel الذي يعكس عرضك بالضبط، ويصري نموذج (نموذج) المجال الخاص بك إلى ViewModel.

في البداية، غالبا ما يبدو من المناسب استخدام نماذج المجال مباشرة في الرأي، دون سبب أفضل من أنهم سهل الاستخدام. ومع ذلك، نظرا لأن الرأي يحصل على أكثر تعقيدا بمرور الوقت، فسوف ينتهي بك الأمر بوضع طن من المنطق الشرعي في رأيك، وينتهي بك الأمر مع السباغيتي. لتخفيف هذا، ننشئ عادة ViewModel يرتبط 1: 1 مع العرض.

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