سؤال

هل يمكنني تشغيل تطبيق MVC 1 باستخدام تجميعات MVC 2 دون عقبة؟ أنا أفهم أن بعض أدوات الحزب الثالث قد كسرت في MVC 2، ولكن دعونا نفترض أنني لا أستخدم تلك الأدوات الأخرى.

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

المحلول

كانت هناك كسر التغييرات.

إذا كنت ترغب في تشغيل مشروع 1.0 في 2.0، فإنه يبحث عن أشياء في أماكن مختلفة؛ لذلك يجب عليك ترحيل التطبيق إلى 2.0..

فيما يلي التغييرات التي قد تكون "استراحة" (الحالية اعتبارا من المعاينة 2):

التغييرات في المعاينة 2

المساعدون الآن عودة MvcHtmlString هدف

من أجل الاستفادة من بناء جملة تعبير ترميز HTML الجديد في ASP.NET 4، فإن نوع الإرجاع للمساعدين HTML هو الآن MvcHtmlString بدل من string. وبعد لاحظ أنه إذا كنت تستخدم ASP.NET MVC 2 والمساعدين الجدد باستخدام ASP.NET 3.5، فلن تتمكن من الاستفادة من بناء جملة ترميز HTML؛ يتوفر بناء الجملة الجديد فقط عند تشغيل ASP.NET MVC 2 على ASP.NET 4.

JsonResult يستجيب الآن فقط لطلبات نشر HTTP

من أجل تخفيف هجمات اختطاف JSON التي لديها إمكانات الكشف عن المعلومات، بشكل افتراضي، JsonResult فئة يستجيب الآن فقط ل http POST طلبات. AJAX الحصول على مكالمات إلى طرق العمل التي ترجع JsonResult يجب تغيير الكائن لاستخدام ما بعد بدلا من ذلك. إذا لزم الأمر، يمكنك تجاوز هذا السلوك عن طريق ضبط الجديد JsonRequestBehavior ممتلكات JsonResult. وبعد لمزيد من المعلومات حول الاستغلال المحتمل، راجع بلوق نشر JSON اختطاف على مدونة Phil Haack.

نموذج خاصية نموذجية ModelBindingContext عفا عليها الزمن

صندوق جديد ModelMetadata تم إضافة الممتلكات إلى ModelBindingContext صف دراسي. الخاصية الجديدة تغلق كل من النموذج و ModelType الخصائص. على الرغم من أن Model و ModelType الخصائص عفا عليها الزمن، للتوافق مع المتخلفين في مجال الخصائص لا يزال العمل؛ يفوضون ModelMetadata الممتلكات لاسترداد القيمة.

التغييرات في المعاينة 1

DefaultControllerFactory التغييرات الفئة كسر مصانع المراقب المخصصة التي تستمد منه

يؤثر هذا التغيير على مصانع المراقب المخصصة التي تستمد من DefaultControllerFactory وبعد تم إصلاح فئة DefaultControllerFactorlatory عن طريق إزالة RequestContext خاصية وبدلة تمرير مثيل سياق الطلب إلى الأساليب الافتراضية المحمية GetControllerInstance و GetControllerType.

غالبا ما تستخدم مصانع المراقب المخصصة لتوفير حقن التبعية لتطبيقات ASP.NET MVC.

لتحديث مصانع وحدة التحكم المخصصة لدعم ASP.NET MVC 2، قم بتغيير توقيع الأسلوب أو التوقيعات لتتناسب مع التواقيع الجديدة، واستخدام معلمة طلب سياق الطلب بدلا من الخاصية.

"المنطقة" هي الآن مفتاح قيمة المسار المحجوز

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

إذا كنت تستخدم ميزة المناطق، فتأكد من عدم استخدامها {area} كجزء من عنوان URL للمسار الخاص بك.

مشاكل معروفة

يطرح مربع حوار إضافة طريقة عرض NullReferenceException عندما يتم التحقق من خانة الاختيار "إنشاء طريقة عرض مكتمة بشدة"، ويتم تحديد اختيار محتوى عرض غير "فارغ"، ويتم تحديد اسم نوع من بيانات البيانات لنوع موجود. عند تحديد اسم النوع، إما استخدام القائمة المنسدلة لتحديد اسم النوع أو اكتب اسم النوع المؤهل بالكامل. لأنواع غير موجودة، يجب عليك تعيين عرض المحتوى إلى "فارغ".

نصائح أخرى

تحقق من هذا المستند. ستتعرف على التغييرات العاجلة:http://go.microsoft.com/fwlink/؟linkid=157072.

GotCha واحد الذي ضربني هو أن جميع مجالات النموذج يتم التحقق منها الآن دائما على وظيفة.

تم وصف التغييرات براد ويلسون هنا.

ستيف أندرسون بوست بلوق يصف القضية والحل المفضل لدي (باستخدام خدمة Validator).

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