الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

عن إعادة توجيه الصفحات

بدأه احمد طلال في 15 سبتمبر 2011 · 7 رد · 1,325 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته .....

سوف أتحدث عن إعادة توجيه الصفحات أي صفحات الpage.aspx وجعلها مثلا page/news/1 أو page.htm وهكذا ومن أهم الفوائد لهذه المقالة هي سرعة الفهرسة لمحركات البحث لصفحتك لان محركات البحث تفضل صفحات الhtm على aspx وتستطيع أيضا جعل رابطك مثل هذا( الموضوع page/) .

نبدا بحمد الله ....

أولا نقوم بإنشاء مشروع جديد بفجول استوديو 2008 بلغة الc#

ثم نقوم بفتح ملف الكنفج(web.confg) ونقوم بإضافة التالي:

<httpModules>
<add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule,System.Web.Routing,Version=3.5.0.0,Culture=neutral,PublicKeyToken=31BF3856AD364E35"/>
</httpModules>

طبعاً الوسوم <httpmodules> موجودة أنت فقط سوف تضيف الذي في الوسط وهو :

<add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule,System.Web.Routing,Version=3.5.0.0,Culture=neutral,PublicKeyToken=31BF3856AD364E35"/>

وأيضاً نضيف

<modules>
<remove name="UrlRoutingModule" />
      <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule,System.Web.Routing,Version=3.5.0.0,Culture=neutral,PublicKeyToken=31BF3856AD364E35" />
</modules>

وأيضاً نضيف

<handlers>

      <add name="UrlRoutingHandler" preCondition="integratedMode" verb="*" path="UrlRouting.axd" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</handlers>

ألان نذهب إلى قائمة website البرنامج ونضيف ملف Global.asax جديد.

تم نذهب إلى قائمة website مرة أخرى ونختار في هذه المرة add reference ونقوم باختيار المكتبة System.Web.Routing

بعدها نعود إلى ملف الglobal.asax ونستدعي المكتبة بالطريقة التالية :أعلى الصفحة...

<%@ Import Namespace="System.Web.Routing" %>

وبعدها نقوم بإضافة كلاس من قائمة website تم add new item تم class.

ونقوم بتسميتها MemberRouteHandler.cs ونقوم بمسح كامل الكود الذي فيها ونضيف هذا الكود:

using System.Web.Compilation;
using System.Web.UI;
using System.Web;
using System.Web.Routing;


public interface IRoutablePage
{
    RequestContext RequestContext { set; }
}


public class MemberRouteHandler : IRouteHandler
{
    public MemberRouteHandler(string virtualPath)
    {
        this.VirtualPath = virtualPath;
    }

    public string VirtualPath { get; private set; }

    public IHttpHandler GetHttpHandler(RequestContext
          requestContext)
    {
        var page = BuildManager.CreateInstanceFromVirtualPath
             (VirtualPath, typeof(Page)) as IHttpHandler;

        if (page != null)
        {
            var routablePage = page as IRoutablePage;

            if (routablePage != null) routablePage.RequestContext = requestContext;
        }


        return page;
    }

}

بعدها نقوم بإنشاء مجلد جديد داخل الموقع ولنسميه مثلاً news ونضيف فيه صفحة جديدة.

نعود ألان إلى ملف global.asax ونقوم بحذف الكود التالي منه:

void Application_Start(object sender, EventArgs e) 
    {
        // Code that runs on application startup

    }

ونضيف بدلا منه الكود التالي:

void Application_Start(object sender, EventArgs e)
    {
        RegisterRoutes(RouteTable.Routes);

    }


    public static void RegisterRoutes(RouteCollection routes)
    {

        routes.Add("MemberList", new Route
        (
            "news/1",
           new MemberRouteHandler("~/news/Default.aspx")
        ));


    }

حيث يعني أننا قمنا باستبدال اسم الصفحة default الموجودة داخل المجلد news بالاسم news/1 وهكذا ....

إذا أرتد تكرار هذا أي عمله لصفحة أخرى ما عليك سوى تكرار الكود التالي:

routes.Add("MemberList", new Route
        (
            "news/1",
           new MemberRouteHandler("~/news/Default.aspx")
        ));

طبعاً مع تغيير كلاً من أسم الصفحة وأسم البديل وأيضاً إعطاء متغير جديد (memberlist) أي قم بتغيير الاسم إلى أي اسم تريد.

والسلام عليكم ورحمة الله وبركاته....

2

وقال تعالى(( وَلَن تَرْضَى عَنكَ الْيَهُودُ وَلاَ النَّصَارَى حَتَّى تَتَّبِعَ مِلَّتَهُمْ قُلْ إِنَّ هُدَى اللّهِ هُوَ الْهُدَى وَلَئِنِ اتَّبَعْتَ أَهْوَاءهُم بَعْدَ الَّذِي جَاءكَ مِنَ الْعِلْمِ مَا لَكَ مِنَ اللّهِ مِن وَلِيٍّ وَلاَ نَصِيرٍ ))......

للمزيد من المشاريع الجاهزة ودورات برمجة المواقع اضغط هنا

#2

السلام عليكم ورحمة الله وبركاتة

شكرا لك أخي " أحمد طلال " على هذا الشرح..

وللعلم الـ Routing موجود في 4 .NET بشكل مباشر

بالتوفيق وفي أنتظار دروس قادمة

Good luck

My Latest

Hello Entity Framework Code First

--------------------

#4

جزيت جيرا عزيزي أحمد طلال

زلكن هنلك سؤال يطرح مفسه

لوكان ا لرابط كالتالي كيف يت التاعمل معه

Default.aspx?xx=1&yy=2

تحيايتي

وَعَبْدٌ قَدْ يَنامُ عَلَى حَرِيرٍ ××× وَذُو نَسَبٍ مَفَارِشُهُ التُّرَابُ

#5
EMNALI كتب:

جزيت جيرا عزيزي أحمد طلال

زلكن هنلك سؤال يطرح مفسه

لوكان ا لرابط كالتالي كيف يت التاعمل معه

Default.aspx?xx=1&yy=2

تحيايتي

السلام عليكم ورحمة الله وبركاتة

هذا مرجع للعملية المطلوبة

ASP.NET Routing

Good luck

تم تعديل هذه المشاركة بواسطة D a r K T o u c h في 15 سبتمبر 2011 في 15:18

My Latest

Hello Entity Framework Code First

--------------------

#6

جزاكم الله خير على المرور الطيب....أما بالنسبة لعمل رابط مثل التالي Default.aspx?xx=1&yy=2...

سوف اقوم بشرحة في الجزء الثاني من الدرس إن شاء الله....

وقال تعالى(( وَلَن تَرْضَى عَنكَ الْيَهُودُ وَلاَ النَّصَارَى حَتَّى تَتَّبِعَ مِلَّتَهُمْ قُلْ إِنَّ هُدَى اللّهِ هُوَ الْهُدَى وَلَئِنِ اتَّبَعْتَ أَهْوَاءهُم بَعْدَ الَّذِي جَاءكَ مِنَ الْعِلْمِ مَا لَكَ مِنَ اللّهِ مِن وَلِيٍّ وَلاَ نَصِيرٍ ))......

للمزيد من المشاريع الجاهزة ودورات برمجة المواقع اضغط هنا

#7

السلام عليكم ورحمة الله وبركاته...

هذا الجزء الثاني من الدرس عملتة على هيئة pdf مع مثال الموقع وهو عن كيفية جعل الصفحات بهذا الشكل page/3 بدلا من page.aspx?=3 أي بدلا من البارميتر والقرائة من الداتابيز ايضاً

وجزاكم الله خير.....

routting.rar

وقال تعالى(( وَلَن تَرْضَى عَنكَ الْيَهُودُ وَلاَ النَّصَارَى حَتَّى تَتَّبِعَ مِلَّتَهُمْ قُلْ إِنَّ هُدَى اللّهِ هُوَ الْهُدَى وَلَئِنِ اتَّبَعْتَ أَهْوَاءهُم بَعْدَ الَّذِي جَاءكَ مِنَ الْعِلْمِ مَا لَكَ مِنَ اللّهِ مِن وَلِيٍّ وَلاَ نَصِيرٍ ))......

للمزيد من المشاريع الجاهزة ودورات برمجة المواقع اضغط هنا

#8

اكرمك الله

مواضيع مشابهة