سؤال

لا أستطيع الحصول على التحقق من صحة xVal للعمل مع نماذج العرض المكتوبة بقوة.

يبدو أن كل طريقة في xVal تريد بادئة لا يتم استخدامها عند التعامل مع نماذج العرض المكتوبة بقوة.

تحتوي طريقة العرض الخاصة بي على رمز مشابه لهذا:

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<ContactForm>" %>
<%= Html.TextBox("firstName", Model.FirstName) %>

ويدخل الكود التالي في وحدة التحكم:

try
{
    var theModel = form.ToModel();
    _contactRepository.Save(theModel);
}
catch (RulesException ex)
{
    ex.AddModelStateErrors(ModelState, string.Empty); // Passing string.Empty for prefix, since I don't use prefixes.
}

return View(form);

ومع ذلك، فإن الكود أعلاه لا يعمل.بالتأكيد فاتني شيء ما، لكن لا أعرف ما هو.هذه هي المرة الأولى التي أستخدم فيها xVal.

شاكرين لأية مساعدة!

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

المحلول

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

وأعتقد أن هذا هو خلل في xVal.

نصائح أخرى

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

في الأساس الخطوات ستكون:

  1. استرجع نموذج العرض المحدث المكتوب بقوة من النموذج.
  2. تمرير هذا النموذج إلى الخاص بك DataAnnotationsValidationRunner, ، وجمع أي أخطاء تنتج
  3. إذا كانت هناك أية أخطاء (كائنات ErrorInfo)، فقم برميها كملف RulesException
  4. أمسك ال RulesException وأضف استثناءات التحقق من الصحة إلى النموذج الخاص بك باستخدام الاستثناءات AddModelStateErrors طريقة
  5. تحقق لمعرفة ما إذا كان ModelState.IsValid, ، وإذا لم يكن كذلك، قم بتمثيل طريقة العرض الخاصة بك، والتي بفضل معالجة الاستثناءات الخاصة بك ستحتوي الآن على الأخطاء المرتبطة بنموذج العرض الخاص بك.سيكون عليك التأكد من أن لديك ما هو مناسب ValidationMessage استدعاءات مساعد html موجودة، والتي تمت الإشارة إليها أيضًا في المقالة المرتبطة.

والنشر الخاصة بك إلى لا يكفي موجزة تقريبا بالنسبة لي لمعرفة ما هو الخطأ الذهاب، ولكن يمكنك العثور على عرض موقع العمل بشكل كامل في نهاية <لأ href = "https://devermind.wordpress.com/2009/06 / 21 / آسيا والمحيط الهادئ-الصافية للMVC-طرف-3-كيف لتغطي كل الخاص بك بين العميل جنبا شكل التحقق من صحة احتياجات دون كتابة، أي-جافا سكريبت-PART1 / "يختلط =" noreferrer نوفولو " > هذا بلوق المقالة . كما توضح هذه المقالة كل ما عليك القيام به خطوة خطوة، هذا ما ينبغي أن تساعدك على الحصول على xVal قيد التشغيل.

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