Я думал, что если пользовательская сделанная переменная ViewState
всегда доступна на каждом посещении страницы (тот же сеанс браузера) (например, Session
, но на стороне клиента) или только на обратной стороне страницы? Я знаю, что это данные на стороне клиента, которые всегда инкапсулируются пакетом Request
и пакетом Response
с сервера.переменная viewstate всегда доступна?
Я проверял это прямо сейчас, и я сделал следующее:
на Home.aspx:
protected void Page_Load(object sender, EventArgs e)
{
ViewState["test"] = "test1";
}
protected void Button1_Click(object sender, EventArgs e)
{
string test = ViewState["test"].ToString();
Server.Transfer("Default.aspx");
}
И Default.aspx:
protected void Page_Load(object sender, EventArgs e)
{
string test = ViewState["test"].ToString();
}
Но я получаю NullReferenceException
, Таким образом, это означает, что ViewState["test"]
не существует, потому что ViewState
полностью новый и регенерированный. Поэтому я пришел к выводу, что вы можете использовать переменные ViewState
только при выполнении обратной передачи формы (но на самом деле вы всегда перенаправляете после обратной передачи формы, поэтому я не могу использовать ViewState всегда ...).
Я прав, с моим мнением?
Так я прав с моим утверждением? спасибо за ваш комментарий – Ozkan
Да, я верю, что вы пришли к правильному выводу –