دوره های آموزشی
خانه / Asp Form / ارسال متغیر ها بین صفحات با استفاده از QueryString

ارسال متغیر ها بین صفحات با استفاده از QueryString

بیشتر مواقع  نیاز به ارسال مقادیر متغیر ها بین صفحات HTML یا فرم های aspx در یک برنامه بوجود می آید به عنوان مثال در صفحه اول شما اطلاعات کاربر را که شامل نام و نام خانوادگی است را دارید و نیاز به استفاده از آنها در صفحه دیگری می باشد.

برای تبادل  مقادیر متغیر ها بین صفحات ASP.NET  چندین انتخاب وجود دارد. یکی از این انتخاب ها به کارگیری پراپرتی QueryString از شئی Request است. زمانی که در حال گشت و گذار در اینترنت هستید گاها با آدرس هایی با فرمت زیر برخورد کرده اید:

http://www.localhost.com/Webform2.aspx?name=Arash&lastName=Azarniva

در این آدرس html  از QueryString برای ارسال مقادیر بین صفحات استفاده شده است .  این آدرس 3 داده  را ارسال می کند .

  1.  Webform2.aspx این نام صفحه ای است که مرورگرتان به آن خواهد رفت.
  2. name=Arash این قسمت  متغیر name  که مقدار آن Arash  است را ارسال می کند.
  3.  lastName=Azarniva متغیر lastName  با مقدار Azarniva ارسال می شود.

همانطور که حدس زده اید  شروع QueryString با ؟ و بین متغیر ها  & قرار می گیرد. نحوه ساخت QueryString در Asp.net بسیار ساده است . فرض کنید در فرم اول دو textboxs  و یک button داریم.

کدهای زیر را در قسمت رویداد button کپی کنید :

در  کد بالا یک query string ساخته ایم که به وسیله آن محتوای   textboxes  را به صفحه دوم ارسال می کنیم. حال برای بازیابی مقادیر در صفحه دوم کد های زیر را در رویداد page_load صفحه دوم قرار دهید.

Request.QueryString  شامل 2 overloaded می باشد . شما همچنین می توانید  مقادیر را با توجه به موقعیتشان در querystring بازیابی کنید.

برخی روش های دیگر برای به دست آوردن محتوای QueryString :
یا
مزایای QueryString

  • به آسانی قابل استفاده است

معایب QueryString

  • QueryString ماکزیمم اندازه دارد. در صورتیکه اطلاعات زیادی ارسال کنید کار نخواهد کرد.
  • QueryString در قسمت آدرس مرورگر قابل مشاهده است و نباید از آن برای ارسال اطلاعات حساس استفاده کرد.
  • QueryString کارکتر های & و space را نمی تواند ارسال کند.

در صورتیکه در کدی را می نویسید که نیاز به ارسال متغیر هایی که شامل  کاراکتر های  & و space است می شود باید راه حل برای این مشکل پیدا کرد . اگر نگاهی به query string ایجاد شده توسط گوگل بیندازد می بینید که شامل تعداد زیادی %20 است که این راه حل مورد نظر  می باشد . با جایگزینی  space با %20 و & با %26 برای مثال :

از آنجایی که این قبیل مشکلات در Asp.Net متداول است راه دیگری نیز  وجود دارد و آن  استفاده از متد Server.UrlEncode می باشد. متد Server.UrlEncode مقدار query strings را به گونه ای تغییر می دهد که با مشکلی برخورد نکنید.

درباره ی محمد آذرنیوا

مدیر یت آکادمی برنامه نویسان

همچنین ببینید

فیلم آموزشی SQL Server 2014 / ASP.NET/CSS/jQuery

فیلم آموزشی SQL Server 2014 / ASP.NET/CSS/jQuery چرا باید  SQL Server و  Visual Studio را ...

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *