سؤال

لدي حل asp.net mvc أقدم (إطار عمل s#arp) مع مشروعين أحدهما للويب والآخر لوحدة التحكم.لقد قمت بتغيير ملف dll إلى أحدث الإصدارات (2.0) لـ System.Web.MVC وMicrosoft.Web.MVC.لقد قمت أيضًا بتعديل Web.Config الخاص بي:

<add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

هل هذا (من الناحية النظرية) هو كل ما علي فعله؟

الحل جيد ولكني أتلقى هذا الخطأ:

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

تفاصيل الاستثناء:System.ArrayTypeMismatchException:جرت محاولة الوصول إلى عنصر كنوع غير متوافق مع المصفوفة.

خطأ المصدر:

السطر 32:السطر 33:ViewEngines.Engines.Clear();السطر 34:ViewEngines.Engines.Add(new AreaViewEngine());السطر 35:السطر 36:ModelBinders.Binders.DefaultBinder = new SharpModelBinder();

قد لا يكون هذا مرتبطًا بمفتاح mvc ولكن بإطار عمل s#arp.أيه أفكار؟شكرًا.

أطيب التمنيات،

مسيحي

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

المحلول

تتعلق هذه المشكلة بهندسة S#arp.ستحتاج إلى الحصول على إصدار MVC2 من S#arp هنا: http://github.com/codai/Sharp-Architecture/downloads.العنصر الأول في القائمة هو ما تريده، بما في ذلك قالب VS2010.(لاحظ الخطأ المطبعي في الوصف الذي يقول ASP.NET 2، يجب أن يكون ASP.NET MVC 2)

امل ان يساعد.

ملاحظة.إذا كنت مهتمًا بمعرفة سبب الاستثناء نفسه، فراجع هذه المقالة الموجزة: http://dotnetperls.com/arraytypemismatchexception.أظن (دون النظر إلى مصدر S#arp 1 وMVC2) أن SharpModelBinder (الإصدار MVC1) غير متوافق الآن مع تطبيق MVC2 لـ MVC DefaultBinder, ، ولم يتم اكتشاف ذلك في وقت الترجمة بسبب SharpModelBinder يرث من DefaultBinder والمترجم يعتقد أن كل شيء على ما يرام.يتم اكتشاف عدم التوافق الفعلي فقط في وقت التشغيل.

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