ASP.NET MVC 2.0 - ilist مربعات الاختيار
-
21-09-2019 - |
سؤال
ما هي أفضل طريقة للتعامل مع هذا:
class Option {
int id;
string name;
}
class QuoteItem
{
IList<Option> options;
}
class QuoteViewModel {
IList<Option> allOptions;
QuoteItem quoteItem;
}
في الأساس ، لدي جميع الخيارات المتاحة في allOptions
. أريد أن يكون لدي مربع اختيار يضع آخر Option
(حتى لو كان ذلك فقط id
) داخل ال QuoteItem.options
قائمة عند فحصها. كيف يمكنني إنجاز هذا؟ هل سيكون من الأفضل أن يكون IList<bool>
وربطها بعد الحقيقة؟
المحلول
أقترح عليك إلقاء نظرة على هذا إدخال المدونة من Phil Haack حول ملزمة النموذج إلى قائمة
بالنسبة لموقفك ، يمكنك استخدام الطراز البسيط ملزمًا بـ IEnumerable<int> options
, ، حيث ستكون القيم معرف الخيارات التي اخترتها.
سوف تبدو طريقة عرض الإدخال الخاصة بك شيئًا كهذا:
<form method="post" action="/QuoteItems/SetOptions">
<input type="hidden" name="options" value="1" />
<input type="hidden" name="options" value="4" />
<input type="hidden" name="options" value="2" />
<input type="hidden" name="options" value="8" />
<input type="submit" />
</form>
تحتوي المدخلات المخفية على سمة اسم OptionId المحددة ، والتي هي نفسها لكل إدخال مخفي. يمكن أن يرتبط موثق النموذج الافتراضي هذا بقائمة من الأعداد الصحيحة.
الشيء الذي تحتاج إلى القيام به بعد ذلك هو إضافة / إزالة إدخال الخيارات المخفية في جانب العميل اعتمادًا على ما إذا كان يتم تحديد عنصر في "Coll-Options" تحديد التحكم.