هل يمكن أن يكون لديك محررين للأطفال في ASP.NET MVC 2؟
-
04-10-2019 - |
سؤال
لدي قالب محرر لكائن مخصص. أساسي جدًا - فقط لديه مجموعة من الأوتار والتواريخ:
<%:Html.LabelFor(model => model.AString)%>
<%:Html.TextBoxFor(model => model.AString)%>
<%:Html.LabelFor(model => model.ADate)%>
<%:Html.EditorFor(model => model.ADate)%>
<%:Html.LabelFor(model => model.AnotherDate)%>
<%:String.Format("{0:d}", Model.AnotherDate)%>
يتم تخزين هذا في المجلد المشترك/editortemplates. لدي أيضًا قالب محرر DateTime.ascx في نفس الموقع ، لتجاوز جميع حقول DateTime.
كما ترون في الكود أعلاه ، يستخدم أحد حقول التاريخ EditorFor
لحقل التاريخ ، والآخر لا. ومع ذلك ، فإن كلاهما يقدم نفس الشيء ، مما يقودني إلى الاعتقاد بأن محرر DateTime لم يتم الوصول إليه. هل هناك أي شيء أفعله خطأ؟ يبدو أن هذا يجب أن يكون من الممكن القيام به.
لقد استخدمت محرر DateTime مباشرة في عرض ، وهو يعمل بشكل جيد.
شكرا على أي مساعدة أو رؤية.
المحلول 2
اكتشفت المشكلة:
لديّ فصول بيانات بيانات جزئية تم إعدادها للتعليقات التوضيحية للبيانات في النموذج (أنا أستخدم إطار الكيان). عرض تاريخ الجزئي الخاص بي هو ل؟ dateTime (dateTime.ascx)
كان لدي سمة نوع البيانات لجميع التواريخ التي تم تعيينها على [DataType(DataType.Date)]
بدلاً من [DataType(DataType.DateTime)]
.
تغيير تلك السمة إصلاح كل شيء.
نصائح أخرى
لقد جربت السيناريو الخاص بك بموجب MVC 2 و MVC 3 وتحت MVC 3 ، كما تتوقع.
فقط حتى أفهم بشكل صحيح لديك EditorTemplates
في مشاركتك التي تحتوي على ComplexModel.ascx
محرر وداخل ComplexModel.ascx
أنت أتصل Html.EditorFor(m => m.ADate)
.
لست متأكدًا من تحديثات MVC 2 فيما يتعلق بهذا ، لكن MVC 3 يعمل بالتأكيد.