Потеря зрения - PullRequest
       6

Потеря зрения

2 голосов
/ 30 сентября 2010

Я храню некоторые из своих свойств в viewstate, чтобы их можно было легко использовать в запросах Ajax.Мой код свойства выглядит следующим образом:

public Language Language
{
    get { return (Language)ViewState["controls_window_Language"]; }
    set { ViewState["controls_window_Language"] = value; }
}

Однако мои клиенты сообщали о некоторых ошибках, и когда я его отслеживал, это потому, что язык нулевой.Это не происходит каждый раз;это кажется совершенно случайным, и я не могу воспроизвести ошибку.Я также храню другие свойства внутри viewstate, и я использую это свойство непосредственно перед Language, поэтому я не потерял все viewstate.

Наиболее логичной причиной может быть то, что язык перезаписывается, но единственный раз, когда я пишу на него, это когда страница загружается впервые.

В чем может быть причина потери свойства viewstate?1008 *

Ответы [ 5 ]

1 голос
/ 30 сентября 2010

Я не уверен, что это проблема, но использование навигации назад / вперед в браузере часто может привести к неожиданным результатам, особенно на страницах, использующих много асинхронных вызовов.мое мышление ...

Я полагаю, возможно, именно поэтому пользователи видят ошибку, но вы не можете воспроизвести проблему.Это один из этапов устранения неполадок, о которых я часто забываю ...

0 голосов
/ 10 декабря 2014

Одной из возможных причин «потери» содержимого ViewState является Output Cache. Я столкнулся с той же проблемой, и причина кеширования (когда я отключаю его, проблема не возникает).

0 голосов
/ 30 сентября 2010

Попробуйте проверить, есть ли связь между событием Session_OnError в global.asax и вашей проблемой ViewState

0 голосов
/ 30 сентября 2010

Вы говорите, что пишете в состояние просмотра при первой загрузке страницы.

Откуда вы знаете, что страница загружается впервые, есть ли в вашем приложении навигационный маршрут, который может обойти настройку?

В качестве быстрого исправления вы можете попробовать проверить, является ли значение нулевым, а затем вернуть значение по умолчанию.

...