View Full Version : سوال: تعریف متغیر سراسری
GILAS_MVC
چهارشنبه 27 شهریور 1392, 21:21 عصر
سلام
من میخام یه فیلد رواز دیتابیس بخونم و توی یه متغیر قرار بدم که بشه تو همه کنترلرها از اون استفاده کنم
آیا امکانش هست؟
hakim22
پنج شنبه 28 شهریور 1392, 11:34 صبح
بهترین راه استفاده از Session است.
Session["UserID"] = value;
یا اینکه یک تابعی بسازید که مقدار مورد نظر رو از بانک بخونه و بعد cache کنه
forestasphalt
شنبه 30 شهریور 1392, 11:30 صبح
یه تابع استاتیک تعریف کن مقدار اونجا ذخیره و کن ازش استفاده کن
خوبی استاتیک تعریف کردن اینه که داخل رم سرور قرار میگیره و سریعتر به درخواست ها جواب میده
و عیب اش هم اینه که بحث همزمانی و تغییر داده شدن توسط افراد مختلف مطرح میشه
به نظرم به جای سشن از tempdata استفاده کن که توی پشت صحنه از سشن استفاده میکنه ولی بهینه تر وبهتر هست
هر مقداری که داخل tempdata قرار بگیره بعد از اولین باری که مقدارش خونده شد مقدارش از بین میره
GILAS_MVC
شنبه 30 شهریور 1392, 17:30 عصر
میشه یه نمونه از نحوه استفاده tempdata رو اینحا قرار بدید
hakim22
شنبه 30 شهریور 1392, 22:05 عصر
استفاده از متغیرهای استاتیک در IIS میتونه به اتفاقات پیش بینی نشده ای منجر بشه که من تجربه ی خوبی ازش ندارم.
Amir Oveisi
دوشنبه 01 مهر 1392, 12:09 عصر
ترجیحا سعی کنید از Session استفاده نکنید مخصوصا اگر قرار هست که App شما روی Shared Host ها قرار بگیره چون کنترل Application Pool Recycling سرور دیگه دست شما نیست و ممکنه بدون پیش بینی شما مقدار Session اتون خالی بشه و برنامتون به مشکل بربخوره.
میتونید به جاش اطلاعات مورد نظرتون رو (بستگی به حجم و نوع داده هم داره البته) همراه با requset هاتون بین Action ها پاس بدید یا از Cookie استفاده کنید (بسته به توع کاربرد اون اطلاعات داره البته این مورد).
در استفاده از TempData , ViewData و ViewBag هم به Life Cycle هاشون دقت کنید و به اشتباه فکر نکنید که مقدارهایی که داخلشون قرار میدید تا زمان اتمام Session حتما قابل دسترسی خواهند بود، بلکه هر کدوم Life Cycle مشخصی دارند.
ویرایش:
اگر به هر دلیلی حتما میخواید که از Session استفاده کنید برای نگهداری داده هایی از این دست، به نظرم بهتره به جای InProc از حالت StateServer استفاده کنید تا از گزند Recyling های ناگهانی در امان بمونه اطلاعاتتون. البته به شرطی که Hosting Server شما این ویژگی رو پشتیبانی بکنه.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.