سؤال

في مشروع حديث، قمت ببناء إطار MVC الخاص بي بلغة PHP.أحد الأشياء التي قمت بتنفيذها كان نظام التوجيه.لقد استخدمت mod_rewrite الخاص بـ Apache لإرسال جميع الطلبات إلى ملف Index.php، ثم قمت بتحليل URI لاستخراج المعلومات وتوجيه الطلب.

أنا أشتغل الآن بـ ASP.NET، وأتساءل عما إذا كان بإمكاني/كيف يمكنني تنفيذ شيء مماثل.هل هناك طريقة لتوجيه جميع الطلبات (على غرار الطريقة التي يقوم بها WordPress) إلى صفحة واحدة حيث يتم تنفيذ معالجة المسار المركزي؟أنا على دراية بإطار عمل MVC الخاص بـ ASP.NET، ولكنني أرغب في تجربة ذلك بنفسي بينما أقوم بالإصلاح والتعلم.

يحرر:راجع للشغل، موفر الاستضافة الخاص بي يقوم بتشغيل IIS 6

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

المحلول

ستكون هذه إجابة طويلة، لأنني أريد التأكد من أنك على دراية كاملة بجميع الطرق التي يمكنك من خلالها تحقيق ما تريد القيام به.

سيعمل محرك التوجيه الذي يقوم بتشغيل ASP.NET MVC Framework مع ASP.NET Framework التقليدي.يمكنك الاستفادة من استخدام RouteTable وتعيين المسارات، تمامًا كما تفعل في تطبيق ASP.NET MVC.أنت لا تحصل على جزء MVC في مواقع ASP.NET التقليدية.لقد كان ذلك بمثابة تحسين كبير لـ ASP.NET Framework وكان من الرائع رؤيتهم يعيدون استخدام هذا الرمز ويجعلونه يعمل في كلا الإطارين.إذا كنت تريد معرفة المزيد حول هذا الأمر، راجع ScottGu's بريد وقم بالتمرير لأسفل إلى تحسينات توجيه URL.وهنا أيضا أ مرجع حول كيفية استخدام System.Web.Routing في WebForms بقلم Phil Haack.

الآن، إذا كنت لا تزال ترغب في الكتابة الخاصة بك.ستحتاج إلى معرفة خط أنابيب ASP.NET HTTP وكيفية تنفيذه IHttpModule و ال IHttpHandler واجهات لإنشاء فئة HttpModule أو HttpHandler الخاصة بك للتعامل مع التوجيه الخاص بك.هذه الواجهات هي المفتاح لكتابة محرك التوجيه الخاص بك.للمساعدة في وضع هذه الواجهات في مثال عملي، لا يمكنني أن أوصي بهذا مقالة MSDN كافٍ.فهو يوضح لك كيفية القيام بذلك باستخدام أي من الواجهتين ويشرح الاختلافات عند إنشاء محرك إعادة كتابة التوجيه/عنوان URL الخاص بك.

الآن، إذا اكتشفت أن هذا قد يكون كثيرًا بالنسبة لك.توجد مكتبات تابعة لجهات خارجية يمكنك استخدامها للأشخاص الذين كتبوا بالفعل محرك إعادة كتابة التوجيه/عنوان URL في .NET.وهنا سؤال رأيت طرحه منذ وقت ليس ببعيد "ما هو أداة إعادة كتابة عنوان URL الذي تستخدمه لـ ASP.Net؟"هنا على SO.

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