السمة المطلوبة لنوع القيمة BOOL عند استخدامه ك Rebox

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

  •  18-09-2019
  •  | 
  •  

سؤال

أشغل في مشكلة في وجود نموذج إضافة / تحرير بسيط واستخدام التحقق من صحة جانب العميل (jQuery / microsoftmvcjqueryvalidation.js) التي يتم إنشاؤها من التعليقات التوضيحية للبيانات وقم بقيام العميل الممكن عن طريق الاتصال بما يلي:

<% Html.EnableClientValidation(); %>

يبدو أن هذا يعمل بشكل جيد بالنسبة لمعظم العناصر، ولكن لدي مثيل حيث لدي خاصية منطقية يتم تقديم مربع اختيار باستخدام:

<%= Html.EditorFor(model => model.Chargeable)%>

والتي يمكن أن تكون إما صحيحة / خطأ (cyced / unticked).

نظرا لأن BOOL هو نوع قيمة، وليس ظهورا، فإنه يتم عرضه كخاصية مطلوبة وعرض خطأ (جانب العميل) عند تقديم النموذج قراءة "الحقل القابل للشحن مطلوبا". ومع ذلك، مثل HTML تم إنشاؤه هو جزءان (كلا مربع الاختيار والقيمة المخفية) وسيتم تمرير التحقق من صحة النشر.

بعد استعراض التعليمات البرمجية المصدر MVC 2، تمكنت من وضع إصلاح "سريع وقذبا" في الوقت الحالي، والذي هو تعيين:

DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes = false;

أي شخص آخر حصل على أي أفكار أو اقتراحات حول كيفية التجول في هذا؟

IMO، لا أعتقد أن MVC يجب أن يحدد المصدق من جانب العميل المطلوب لصناديق الاختيار المقدمة باستخدام أساليب HTML.editorfor / HTML.checkbox (for).

ملاحظة: أنا أستخدم ASP.NET MVC 2 RC2 و MicrosoftMVCJQueryValidation.js من إطلاق العقود الآجلة MVC المطابقة.

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

المحلول

أفترض أن أسهل طريقة للتعامل معها هي استدعاء القواعد ("إزالة"، [القواعد]) على العناصر (خانات الاختيار بشكل رئيسي) التي أريد إزالة التحقق من جانب العميل من:

<script type="text/javascript">
  $(document).ready(function() {
    $('#Chargeable').rules('remove', 'required');
  });
</script>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top