حذف QueryString از یک صفحه
یکشنبه 29 تیر 1393هنگامی که شما به صفحه ای اطلاعات را با متد GET ارسال میکنید، در مواقعی ممکن است که نیاز داشته باشید تا پس از fetch داده های ارسالی آنها را به دلایل مختلف از بین ببرید. در این مقاله قصد داریم نحوه اجرای این روش را توضیح دهیم.
بهتر است پیش از اینکه به نحوه اجرای این روش بپردازیم، به کاربرد آن هم اشاره ای داشته باشیم.
فرض کنید شما یک QueryString با نام request را به صفحه مورد نظرتان ارسال کرده اید و در متد Page_load بنا بر مقادیر درون request قرار است دستوراتی را متعاقبا اجرا کنید (به عنوان مثال insert، delete، edit و ...)
حال هنگامی که شما هر بار به هر نحوی در صفحه تان PostBack داشته باشید مقادیر دوباره از QueryString واکشی میشود و روند مورد نظرتان از نو اجرا میگردد. حال تنها با حذف QueryString مورد نظر میتوانید این مشکل را برطرف سازید.
روش حذف QueryString
اگر شما مستقیما بخواهید دستور زیر را اجرا کنید با این خطا مواجه میشوید که نمیتواند QueryString مورد نظر را پاک کند چون این متغییر ReadOnly است.
Request.QueryString.Remove("request")
حال با اضافه کردن کد زیر در ابتدا آن را به editable تبدیل میکنید و سپس آن را حذف میکنید:
PropertyInfo isreadonly = typeof(System.Collections.Specialized.NameValueCollection).GetProperty( "IsReadOnly", BindingFlags.Instance | BindingFlags.NonPublic); // make collection editable isreadonly.SetValue(this.Request.QueryString, false, null); // remove this.Request.QueryString.Remove("request");
کافیست تمام بلوک بالا را در یک متد قرار دهید و هر جا که نیاز به حذف QueryString مورد نظر دارید آن را حذف کنید.
- ASP.net
- 3k بازدید
- 11 تشکر