پنج شنبه ۴ خرداد ۱۳۹۶
 
 
 
کلمه عبور خود را فراموش کرده اید؟
 

 
 
 URL Routing در ASP.NET 4.0
ASP.NET
تاریخ ثبت:  ۸۸/۱۲/۳
تعداد نمایش:  ۷۴۸۲
  نویسنده: مجید شهاب فر
 
   ۲۲  نفر تا این لحظه به این مقاله امتیاز داده اند.
 
   Bookmark and Share

مسيرگزيني URL قابليتي بود كه در ابتدا توسط برخي از شركتها به صورت كامپوننتي جداگانه براي ASP.NET تهيه شد. مايكروسافت براي اولين بار اين قابليت را از نسخه ASP.NET 3.5 SP1 معرفي كرد كه قبل از آن در برنامه هاي  ASP.NET MVC براي برخورداري از URL هاي كوتاه، تميز با قابليت گير افتادن سريعتر در موتورهاي جستجوگر و همسان با استانداردهاي Web 2.0 مورد استفاده قرار مي گرفت. مسيرگزيني URL اين امكان را مي دهد تا در آدرس URL مسيرها را بدون نگاشت فايلهاي فيزيكي تعريف كرد. اين امر كمك مي كند تا بجاي آنكه مجبور شويم نام اصلي يك فايل يا شماره كد يا يك ID طولاني را در آدرس URL بياوريم، از عباراتي معني دار استفاده كنيم كه هم كاربرپسند است هم سريع تر مورد توجه موتورهاي جستجوگر قرار مي گيرد.

بعنوان مثال آدرس زير را در نظر بگيريد كه يك صفحه كه يك گروه خاص از محصولات را نشان مي دهد:

      http://www.mysite.com/products.aspx?category=software

با استفاده از مسيرگزيني URL در ASP.NET 4.0 مي توان برنامه را طوري پيكربندي نمود كه به جاي URL فوق URL زير را بپذيرد.

     http://www.mysite.com/products/software

به كمك ASP.NET 4.0 آدرسهايي شبيه فوق اكنون مي توانند براحتي هم در كلاسهاي ASP.NET MVC Controller و هم در صفحات مبتني بر ASP.NET Web Forms نگاشته شوند.

 

مسيرگزيني URL ها به كمك ASP.NET MVC

قابليت مسيرگزيني URL كه در ASP.NET MVC معرفي شد، روشي كارا براي كنترل URL هاي وارده پديد آورده است. به طور نمونه كافيست شما كدي را در قسمت startup برنامه جهت نگاشت URL ها به فرمت خاصي از URL مورد نظر بنويسيد.

شكل زير نشان مي دهد كه چگونه مي توان با استفاده از ASP.NET MVC آدرس /products/software را به كلاس كنترلر Products كه يك تابع action به نام Browse دارد شناساند.

اولين پارامتر از متد ()MapRout نام خلاصه شده مسير مي باشد. پارامتر دوم فيلتر URL مي باشد اين پارامتر به متد ()Browse از كلاس ProductsController پاس داده خواهد شد تا در آنجا مورد پردازش قرار گيرد.

 

نگاشت URL ها با استفاده از ASP.NET Web Forms

ASP.NET 4.0 اين امكان را فراهم آورده است تا بتوان همانند كنترلرهاي ASP.NET MVC به نگاشت URL ها در ASP.NET Web Forms پرداخت.

مثال زير نشان مي دهد كه چگونه مي توان با استفاده از تايع جديد ()MapPageRoute در ASP.NET 4.0 آدرس products/software را به صفحه Products.aspx كه در دايركتوري اصلي قرار دارد منتقل كرد.

دو پارامتر اول اين تابع همانند تابع ()MapRoute مي باشد و پارامتر سوم به صفحه اي اشاره مي كند كه قرار است URL را كنترل كند. در صفحه Products.aspx مي توان كدهايي همانند شكل زير نوشت كه با استفاده از خاصيت جديد Page.RouteData در ASP.NET 4.0 مقدار پارامتر category را كه توسط products/category نگاشته شده است را برگردانده و از آن استفاده كرد.

علاوه بر دسترسي برنامه نويسي شده به پارامترهاي URL همانند شكل فوق، مي توان از <asp:routeparameter> در هر كنترل DataSource در ASP.NET براي دسترسي به پارامتر URL استفاده كرد. به عنوان مثال در زير عبارت <asp:routeparameter> براي برگرداندن مقدار پارامتر @category از products/{category} در مسير URL بكار رفته است.

برگرداندن URL ها در ASP.NET Web Form

همانطور كه در ASP.NET به كمك مسيرگزيني URL، مسيرهاي دلخواه به عنوان مسير اصلي انتخاب مي شوند مي توان براحتي مسيرهاي واقعي را نيز برگرداند. بعنوان مثال در فوق وقتي URL مروط به products/{category} را نگاشتيم در واقع به آن يك نام كاربرپسند مثلا" به نام "products-browse" نسبت داديم. حال مي توان به راحتي با استفاده از متد ()Page.GetRouteUrl و با استفاده از پارامترهاي آن مسير واقعي URL را برگرداند. مثال زير نحوه استفاده از اين متد براي برگرداندن مسير اصلي URL كه با نام كاربر پسند مثلا" "products-browse" نگاشته شده است را نشان مي دهد.

به تابع توضيح داده شده در فوق مي توان هم از طريق كد نويسي در code-behind و هم از طريق markup نويسي در صفحه aspx دست يافت.

همچين مي توان با استفاده از متد ()Response.RedirectToRoute بدون توجه به اينكه از MVC استفاده مي كنيم يا Web Form كاربران را به مسيرهاي مختلفي كه با استفاده از مسيرگزيني URL نگاشته شده اند، منتقل كرد.

 

سناريوهايي براي اداره كردن PostBack ها

مسيرگزيني URL در ASP.NET 4.0 به طور كامل سناريوهاي Postback را پشتيباني مي كند. بعنوان مثال اگر صفحه اي با آدرس products/software را باز كنيد همه كنترل هاي سمت سروري آن المان html بصورت <form action="/products/software"> را به client برميگردانند. كه اين يعني حفظ كردن URL ها در هر Postback ،چيزي قبلا" برنامه نويسان با استفاده از مادولهاي URL Rewriting براي فراهم ساختن آن نياز به كدنويسي اضافه داشتند.

 

 

 

 

 

 

  کیفیت مقاله ارائه شده از نظر شما   
برای دادن رتبه به این مقاله می بایست Login کرده باشید.
  درباره نویسنده
مجید شهاب فر
طراح، برنامه نویس و مدیر PersiaDevelopers.com
همه مقاله های نوشته شده توسط این کاربر (۱۸)
 
  پیام جدید
صفحه ۱ - پیامهای اصلی ۱ تا ۳ از مجموع ۳ پیام اصلی
اولین قبلی بعدی

 عنوان فرستنده تاریخ
 
محل نوشتن این کدها M Sh ۱۳۹۲/۳/۱۹
پاسخ به: محل نوشتن این کدها مجید شهاب فر ۱۳۹۲/۳/۱۹
 
تشکر مجید سامانی ۱۳۹۲/۱/۶
 
مرجع مجید شهاب فر ۱۳۸۸/۱۲/۳
اولین قبلی بعدی

Copyright © 2006 - 2016 All Rights Reserved.
Please direct your questions or comments to