سؤال

لدي مشروع ASP.NET MVC يعمل مع Thhibernate و Nhibernate.Validator وأود استخدام XVAL 1.0 (أحدث إصدار). أضفت البرامج النصية المطلوبة إلى المشروع وأشارت إليها في الموقع.

    <script type="text/javascript" src="<%= ResolveUrl("~/Scripts/jquery-1.3.2.js")%>"></script>
    <script type="text/javascript" src="<%= ResolveUrl("~/Scripts/jquery.validate.js")%>"></script>
    <script type="text/javascript" src="<%= ResolveUrl("~/Scripts/xVal.jquery.validate.js")%>"></script>

ثم أضفت nhibernatevalidoreorrulesprovider إلى xval.activerileproviders في Global.asax Application_onstart ():

xVal.ActiveRuleProviders.Providers.Add(new NHibernateValidatorRulesProvider(ValidatorMode.OverrideXmlWithAttribute));

أخيرا، على المنظر، أضفت:

<%= Html.ClientSideValidation<DomainModel.Entities.MyCustomClass>(Prefix) %>

أحصل على تحذير جافا سكريبت في IE ولكن لا شيء في فايرفوكس. إذا أدخلت الآن بعض الحقول غير الصالحة وتقديمها، لا تطلق XVAL - يتم إعادة النشر بدلا من ذلك ويعالج التحقق من صحة ServerSide البيانات.

ما الخطأ الذي افعله؟ لقد تمكنت من جعل مشروع عينة XVAL يعمل مع XVAL 1.0 ...

/ / edit: لا بد لي من دقة بياني: يحدث شيء ما في الواقع: يقوم بعمل ما بعد الظهر ويحدد الحقول غير الصالحة حمراء (كما تفعل طوال الوقت مع التحقق من صحة جانب الخادم) ولكن إذا كتبت شيئا في هذه الحقول ، يتغير اللون إلى حالته الطبيعية. ولكن إذا قمت بعد ذلك بحذف القيمة مرة أخرى، لا يحدث شيء حتى أقرأ إلى إرسال واستكشاف النموذج يقوم بإعادة النشر ... إذا قمت بإزالة رمز ClientsIdeValidation، فلا يبدو أن هذا يحدث يحدث.

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

المحلول

تأكد من عدم السماح بفحص الخاص بك Nulls، فإن MVC هو التحقق من صحة النماذج ضد الحقول الفارغة في إعادة النشر ولكن XVAL قد لا تفعل ذلك في كل حالة.

نصائح أخرى

حل: استخدمت [طول (1،50)] - Validator for the textfles للتأكد من أنها تحتوي على قيمة. ولكن من الواضح أن Xval لا يتعامل مع هذا الصدع كما هو مستثنى: XVAL يسمح لعصا بعد، حتى لو كانت الحقول فارغة. للتأكد من أن الشيكات Xval إذا كان الحقل فارغا، كان علي اختيار استغلال () ينسب!

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