سؤال

انا استخدم System.Web.Routing في تطبيق ASP.NET Webform. كتبت الطريق التالي في global.asax

routes.RouteExistingFiles = true; // I made true/false both, but none works

routes.Add("competition", new Route
            (
               "Test",
               new CustomRouteHandler("~/Test/WebForm1.aspx")
            ));

وهناكل الدليل هو ما يلي: -

تطبيق

|

| --- اختبار (مجلد)

   |--- Webform1.aspx

عندما أكتب في المتصفح http://localhost:xxxx/Test/ (باستخدام Casini)، يتم التعامل مع الطلب بطريقة تقليدية وليس من خلال الطرق، ويعطيني صفحة "قائمة الدليل - / الاختبار /".

هل يمكن أن تساعدني؟

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

المحلول

كان لدي نفس المشكلة، واخترت الحل العملي أن الملف الذي يجب أن يتعامل مع المسار الافتراضي يسمى Default.aspx

routes.Add("competition", new Route ( "Test", new CustomRouteHandler("~/Test/Default.aspx") ));

نصائح أخرى

هل تستخدم التوجيه على الفور في المربع لشبكة WebForms، لقد قمت للتو بتنفيذ هذا ل "WebForms" على وجه التحديد، لأن هناك بعض الأشياء التي يجب أن تكون على دراية بها:

http://haacked.com/archive/2008/03/11/using-Routing-With-WebForms.aspx.

هذر

تحديث:

باستخدام التنفيذ في الارتباط لا يزال ينتج نفس الخطأ، نظرا لأن المجلد الفعلي موجود.

أعتقد أنه نظرا لأن المجلد موجود، سيتم تقديمه (في بعض الحالات يسرد محتويات المجلد قد يكون المرغوب فيه)

ربما يكون اتباع نهج مختلف سيكون أفضل على سبيل المثال، إذا كانت الصفحات تشير جميعها إلى صفحات تسجيل الدخول إلى إكسترانت محددة، فربما يعمل مجلد وصفي إضافي، على سبيل المثال: / Extrannets / اختبار /؟

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