سؤال

حيث يجب أن تقيم التحقق من الصحة عند استخدام ViewModels مع MVC (MVVM)، على النموذج أو ViewModel؟ (أو كليهما أو لا)؟ و لماذا؟ أحضر هذا بشكل خاص في ضوء V2 من ASP.NET MVC قريبا.

ماذا عن التحقق المعقد / المخصص؟

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

المحلول

يجب أن يكون أي صحة تجارية محددة في النموذج. يمكن القيام بأي صحة محددة على موقع الويب في كل من النموذج و / أو ViewModel. وبهذه الطريقة يمكن أن تتحرك المنطق التجاري الخاص بك (النماذج) وراء واجهة مختلفة (Windows، نماذج الويب، وما إلى ذلك) وسيبقى التحقق من الصحة سليمة.

نصائح أخرى

أود أن أقول أنه غالبا ما تكون هناك حاجة للتحقق من الصرف على جميع المستويات :)

كنت أفكر لفترة من الوقت حول ما يلي:

  1. التحقق من صحة إدخال المستخدم: بالتأكيد على وحدة تحكم، وليس على أي نوع من النموذج. مثال: CAPTCHA..
  2. عرض البيانات ذات الصلة التحقق من صحة على ViewModel (ليس في ViewModel، ولكن على ViewModel). أمثلة: تأكيد كلمة المرور, البريد الإلكتروني المطلوب.
  3. يتحقق التحقق من صحة قواعد الأعمال بالتأكيد التحقق من صحة الطراز. أمثلة: البريد الإلكتروني المطلوب, يجب أن يكون كوبون الخصم صالحا.
  4. يحتمل أن تستخدم حالة (قصة، سيناريو، إلخ) التحقق من صحة. لا يتحقق التحقق من صحة السمات، ولكنه يتحقق صحة العملية برمتها. يجب أن تذهب إلى التحقق من صحة النموذج (أو أفضل في طبقة منفصلة). مثال: يمكن الحصول على 3 عناصر فقط مجانا خلال الأسبوع إذا لم يتم وضع أي أمر لفترة محددة.

ملاحظة: تضمنت البريد الإلكتروني المطلوب في كل من 2 و 3 لأنه غالبا ما يعتمد المكان الذي ينتمي إليه.
إذا كان البريد الإلكتروني يلعب دورا مفيدا فقط - فيمكن استرخاء التحقق من الصحة وادفعها إلى نموذج العرض. إذا كان البريد الإلكتروني شرطا قويا للتطبيق - فهو مؤكد التحقق من صحة النموذج.

الشيء الرابع في الواقع لا علاقة له بالتحقق من الصحة كما نفهمه.
ولكن يجب أن يتم تطبيقه أيضا. وبالتالي يجب عرض ناتجها للمستخدم.

أساسا جميع أنواع التحقق من الصحة يمكن أن تستخدم نفس البنية التحتية. لكن التنفيذ يعتمد :) ...

هتافات،
dmitriy.

نموذج. يجب أن يكون التحقق من الصحة في طبقة عملك. يجب أن يكون نموذج العرض الخاص بك فقط للحصول على إعداد عرض الخاص بك.

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