#c# #asp.net
#c# #asp.net
Вопрос:
Что я должен использовать для хранения vlaue, который используется несколькими методами одной и той же страницы? Оно не будет использоваться на других страницах, но будет использоваться при обратной передаче. Использую ли я статическую переменную, или сеанс, или скрытое поле, или что-то еще?
Большое спасибо .
Комментарии:
1. Вы опубликовали несколько вопросов, вы получите несколько ответов. Некоторые из них хороши, некоторые лучше. Итак, выберите наилучший ответ и примите его. Делая это, вы дадите несколько очков репутации тому, кто ответил на вопрос.
Ответ №1:
Вам решать, какой способ лучше для вас: viewstate, скрытое поле, сеанс, запись в базе данных и т.д. На ваш вопрос, похоже, лучший ответ: viewstate.
- ViewState — простой, с относительно низким уровнем безопасности (пользователь может изменять, но это сложно, если вы используете проверку), использует сетевой трафик
- скрытое поле — простое, с низким уровнем безопасности (пользователь может изменять), использует сетевой трафик
- Сеанс — простой, с высокой степенью безопасности, вы должны подумать, как распорядиться значением позже (если вы вернетесь на страницу и вам не нужно, чтобы это значение вступило в силу)
- База данных — относительно сложная, безопасная
Комментарии:
1. Viewstate выглядит для меня лучше всего. Но как пользователь может изменить viewstate или hiddenfield? Чтобы уточнить больше, я пытаюсь подсчитать количество нажатий на какую-либо кнопку.
2. Нет, клиент не может изменять viewstate напрямую (я имею в виду «напрямую» в браузере, с помощью javascript) — только при обратной передаче. Например, пользователь нажимает кнопку, выполняется обратная передача, запускается событие нажатия кнопки, в коде задается viewstate (ViewState[«клики»]=(int)ViewState[«клики»] ). Скрытое поле может быть легко изменено непосредственно с помощью кода javascript, без каких-либо записей.
Ответ №2:
Сохраняйте значение в состоянии сеанса:
int someValue = 123;
Session["SomeValue"] = someValue;
Для его извлечения:
someValue = (int)Session["SomeValue"];
Комментарии:
1. Вы используете состояние сеанса для сохранения данных на нескольких страницах. «Это не будет использоваться на других страницах ..» поэтому он должен использовать состояние просмотра
2. Нет, если он хочет уменьшить размер своей страницы, плюс это более безопасно, чем ViewState
![]()