Как я могу поместить переменные, которые имеют область охвата всей сессии на странице ASP.NET(я имею в виду в классе, который стоит за страницей aspx)? Единственный способ поместить переменную в объект Session?
Например:
public partial class Test_ : System.Web.UI.Page
{
private int idx = 0;
protected void Button1_Click(object sender, EventArgs e)
{
Button1.Text = (idx++).ToString();
}
}
Я хочу, чтобы каждый клик на этой кнопке мой индекс поднимался вверх. Как это сделать без использования объекта Session?
10 раз заранее, Danail
Существует несколько опций, кроме сеанса. Взгляните на Девять параметров управления постоянным пользовательским состоянием в вашем приложении ASP.NET.
Для такого рода данных вы, вероятно, захотите использовать хранилище сеансов.
Вместо этого вы можете поместить его в ViewState
public partial class Test_ : System.Web.UI.Page {
protected void Button1_Click(object sender, EventArgs e) {
if(ViewState["idx"] == null) {
ViewState["idx"] = 0;
}
int idx = Convert.ToInt32(ViewState["idx"]);
Button1.Text = (idx++).ToString();
ViewState["idx"] = idx;
}
}
ViewState похоже на то, что вы ищете здесь, если этот счетчик не нужно поддерживать за пределами этой страницы. Имейте в виду, что обновление страницы будет reset счетчиком. Кроме того, если счетчик является конфиденциальной информацией, будьте осторожны, что он будет храниться (зашифрован) в визуализированном HTML, тогда как значения сеанса хранятся на стороне сервера.