با عرض سلام
من در asp.net برنامه می نویسم ، چگونه می توانم از نوشتن های مکرر کدی که در چندین صفحه به آن نیاز دارم ، جلوگیری کنم و فقط آن را یک بار بنویسم و در تمام صفحات آن را فراخوانی کنم ؟ مثلا کد زیر :
protected void btnAddBasket_Click(object sender, EventArgs e) { string id = ((Button)sender).CommandArgument; MasterDCDataContext db = new MasterDCDataContext(); var q = db.Products.Where(c => c.PrID == int.Parse(id)).Single(); PrTitle = q.PrName; PrCompany = q.PrCompany; prType = q.PrType; PrImage = q.PrImage; PrPrice = q.PrPrice; PrTotalPrice = q.PrPrice * 2; if (Session["basket"] == null) { DataTable dt = new DataTable(); dt.Columns.Add("PrID"); dt.Columns.Add("PrImage"); dt.Columns.Add("PrTitle"); dt.Columns.Add("PrPrice"); dt.Columns.Add("PrTotalPrice"); dt.Columns.Add("PrCompany"); dt.Columns.Add("PrType"); DataRow dr = dt.Rows.Add(); dr["PrID"] = Request.QueryString["PrID"]; dr["PrImage"] = PrImage; dr["PrTitle"] = PrTitle; dr["PrPrice"] = PrPrice; dr["PrTotalPrice"] = PrTotalPrice; dr["PrCompany"] = PrCompany; dr["PrType"] = prType; Session["basket"] = dt; } else { DataTable dt = (DataTable)Session["basket"]; DataRow dr = dt.Rows.Add(); dr["PrID"] = Request.QueryString["PrID"]; dr["PrImage"] = PrImage; dr["PrTitle"] = PrTitle; dr["PrPrice"] = PrPrice; dr["PrTotalPrice"] = PrTotalPrice; dr["PrCompany"] = PrCompany; dr["PrType"] = prType; //dt.Rows.Add(dr); Session["basket"] = dt; } }
یک کلاس ایجاد کردم تا این کد را درون آن بنویسم ، اما Session یا امثال آن را نمی شناسد و خطا می گیرد . آیا راه انجام این کار ایجاد کلاس است ؟ چگونه این کار را انجام دهم ؟ چگونه آن را در صفحات مورد نیاز فراخوانی کنم ؟
با تشکر
میتونید یک کلاس ایجاد کنید و در اون کلاس متد
کدها را داخل متد ها قرار دهید و برای پارامتر ها میتونید برای متد ورودی تعیین کنید
در کلاس با استفاده از HttpContext.Current میتونید به سشن و بقیه موارد دسترسی پیدا کنید
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)