سؤال

لدي حقل DateTime في النموذج الخاص بي يظهر في شكل في وجهة نظري مثل هذا:

<div class="editor-field">
    @Html.EditorFor(model => model.Age)
    @Html.ValidationMessageFor(model => model.Age)
</div>

عند إنشاء نموذج جديد وإدراجه في قاعدة البيانات الخاصة بي ، أقوم بتعيين قيمة 09/11/1990 15:36:22. إذا حاولت تحرير هذا النموذج باستخدام عرضي وعدم تغيير قيمة Age بالنسبة لنموذجي ، يتم التحقق من صحة النموذج وأي تغييرات على الحقول الأخرى مقبولة وحفظها. ومع ذلك ، إذا قمت بتغيير Age حقل ل 07/27/2010 15:36:22 أحصل على خطأ في التحقق من الصحة " The value '07/27/2010 15:36:22' is not valid for Age. لكن التاريخ 09/12/2010 15:36:22 تم التحقق من صحة بنجاح. أي سبب لماذا يحدث هذا؟ في مصحح الأخطاء ، تكون القيمة التي تم إرجاعها لتواريخ غير صالحة 01/01/0001.

تحرير: أعتقد أن هذا يتعلق بثقافة التحقق من صحة JQuery ونظامي ، لأن التحقق من صحة جانب العميل يفشل في أي تاريخ بتنسيق DD/MM/YYYY ، في حين أن التحقق من صحة جانب الخادم هو فشل في أي تاريخ في MM /تنسيق DD/YYYY.

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

المحلول

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

المشكلة التي واجهتها (على ما أظن) هي أن بعض المتصفحات لا تتسق بشأن العولمة التي يستخدمونها جانب العميل والعولمة التي يقدمونها للعالم الأوسع.

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