تبلیغات
با ما به روز باشید... - URL Routing در ASP.NET 4.0

با ما به روز باشید...
 

محل درج آگهی و تبلیغات
 
نوشته شده در تاریخ پنجشنبه 3 آذر 1390 توسط mehdi 2rafky

مسیرگزینی 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 برای فراهم ساختن آن نیاز به كدنویسی اضافه داشتند.





.: Weblog Themes By Pichak :.


تمامی حقوق این وبلاگ محفوظ است | طراحی : پیچک

تبادل لینک

خرید بک لینک