سؤال

وأنا باستخدام الإطار الصافي 3.5 SP1 ولقد نفذت URL التوجيه في طلبي. كنت تحصل أخطاء جافا سكريبت:

و Error: ASP.NET Ajax client-side framework failed to load.
Resource interpreted as script but transferred with MIME type text/html.
ReferenceError: Can't find variable: Sys

والذي أعتقد أنه لأن بلدي التوجيه هو التقاط الملفات AXD مايكروسوفت وغير صحيح يرسل أسفل جافا سكريبت. فعلت بعض البحوث وجدت أنني أستطيع أن استخدام Routes.IgnoreRoute، الذي ينبغي أن يسمح لي أن تجاهل AXD مثل أدناه:

Routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

ولكن، عندما أضيف هذا الخط إلى بلدي Global.asax أحصل على هذا الخطأ:

و CS1061: 'System.Web.Routing.RouteCollection' does not contain a definition for 'IgnoreRoute' and no extension method 'IgnoreRoute' accepting a first argument of type 'System.Web.Routing.RouteCollection' could be found (are you missing a using directive or an assembly reference?)

ولقد حصلت على مساحة System.Web.Routing المستوردة، أي أفكار؟

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

المحلول

وأنت لا تحتاج إلى مرجع ASP.NET MVC. يمكنك استخدام StopRoutingHandler الذي ينفذ IRouteHandler مثل لذلك:

routes.Add(new Route("{resource}.axd/{*pathInfo}", new StopRoutingHandler()));

وهذا جزء من .NET Framework 3.5 SP1 و لا يتطلب MVC. طريقة IgnoreRoutes هي طريقة تمديد الراحة التي هي جزء من ASP.NET MVC.

نصائح أخرى

وهناك سؤال قديم ولكن في حال كان لا يزال يساعد أي شخص، هذا العمل بالنسبة لي:

routes.Ignore("{resource}.axd/{*pathInfo}");

والأسلوب "تجاهل" موجودا، في حين أنه في معيار ASP.NET يظهر "IgnoreRoute" طريقة لا (أي لا تستخدم MVC). وهذا تحقيق النتيجة نفسها كرمز Haacked، ولكن هو أنظف قليلا ...

وأود فقط أن أضيف أن تحتاج أيضا للتأكد من ترتيب IgnoreRoutes بك القاعدة في الترتيب الصحيح خلاف ذلك الطريق الأول سيتم تطبيق أول وسوف ... حسنا يمكن تجاهلها IgnoreRoute الخاص بك.

وMapRoute وIgnoreRoute وطرق الإرشاد في System.Web.Mvc --- هل لديك أن الجمعية المشار إليها بشكل صحيح؟

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