يتضمن نظام العمل لدينا الكثير من عمليات تحرير النماذج والتحقق منها، وأبسط طريقة هي استخدام عنصر التحكم في التحقق من البيانات الذي يأتي مع asp.net، ولكن هذا ينطوي على المشكلات الثلاث التالية:
1. يجب تضمين عنصر التحكم في التحقق في التصميم وإضافته. إلى النموذج وإعداد السمات يدويًا مثل نوع البيانات ورسالة الخطأ وما إلى ذلك، يعد أمرًا مرهقًا للغاية.
2 بالنسبة لمربع الإدخال، قد يتعين علينا التحقق من عناصر متعددة، مثل: مطلوب، ويجب أن يكون بتنسيق التاريخ، ويجب أن يكون أكبر من 1-1-2007. وهذا يتطلب إضافة عناصر تحكم متعددة للتحقق من الصحة.
3 قواعد ونماذج العمل مرتبطة ببعضها البعض، وهو أمر لا يفضي إلى الصيانة وإعادة الاستخدام.
وظائف التحقق التي نأملها هي:
1. يتم فصل قواعد التحقق عن النموذج. ما عليك سوى رسم مربع الإدخال في النموذج وسيتم إنشاء عنصر التحكم في التحقق ديناميكيًا وفقًا لملف التكوين في وقت التشغيل.
2 وفقًا لقواعد التحقق، يتم إنشاء رسالة مطالبة افتراضية: لا يمكن أن يكون فارغًا، نوع الرقم خاطئ، يجب أن يكون بين 1 و100.
3 تعبيرات قاعدة تحقق مرنة: مثل: النطاق (1، 200)، >=0.5، Mail()، Mobile(). حاليًا، الشروط مثل و، أو غير
مدعومة
، ولكن يمكن تمديدها بسهولة.لهذا السبب، قمنا بتغليف هذا الجزء من الوظيفة. عند استخدامه، ما عليك سوى
تعيين ما يلي في ملف XML: اسم التحكم، ونوع البيانات، وما إذا كان مطلوبًا، ومعلومات تعبير التحقق.
هنا اقتباس:
<التحقق من صحة المعلومات>
<ControlName>كمية المنافذ</ControlName>
<DataType>عدد صحيح</DataType>
<يتطلب>صحيح</يتطلب>
<Expression>النطاق (1، 100)</Expression>
</التحقق من المعلومات>
في حدث Page_Init الخاص بالصفحة، قم باستدعاء أسلوب الفئة:
يمكن استخدام ValidateHelper.LoadFromFile("data Verification_configuration.xml").
تصميم الطبقة:
// فئة معلومات التكوين
classValidateInfo
{
سلسلة عامة اسم التحكم؛
نوع بيانات ValidationDataType العام؛
سلسلة عامة ErrorMessage؛
يتطلب المنطق العام؛
تعبير السلسلة العامة؛
}
// مصنع إنشاء التحكم في التحقق من الصحة
ValidatorFactory من الفئة العامة
{
CreateRequiredFieldValidator();
CreateDateTypeCheckValidator();
CreateRangeValidator(string min, string max);
CreateCompareValidator(ValidationCompareOperator oper, string valueToCompare);
...
}
// محلل قاعدة التحقق، ينشئ عناصر تحكم للتحقق بناءً على معلومات التكوين
فئة عامة ValidatorParser
{
Parse(ValidateInfo info, ValidatorFactory Factory);
...
}
// اقرأ معلومات التكوين واربط عنصر التحكم في التحقق بالنموذج
فئة عامة ValidateHelper
{
LoadFromFile(صفحة الصفحة، اسم ملف السلسلة)
}