2014-12-15 5 views
0

У нас есть веб-приложение (-ish), и мы используем множество настраиваемых UserControl. Мы загружаем кучу из них в каждом представлении, но мы не хотим, чтобы они отображали или даже предварительно отображали, пока нам не придется их использовать. Затем мы устанавливаем Visible = False в каждом элементе управления, а затем используем Update Panel s, чтобы установить его на True всякий раз, когда требуется управление. Затем элемент управления отображается правильно.Регистрация ViewState для "visible = false" UserControl - ASP.NET

Но в следующем обратном обратном случае у нас очень неприятная ошибка проверки MAC, и мы считаем, что это связано с тем, что ASP не обновляет viewstate (но я не знаю, полностью ли это верно).

Вопрос: Возможно ли в точности узнать, что проверка MAC-кода порождает ошибку? Если мы правы, а ViewState для пользовательских элементов управления не обновляется на уже отправленной странице, что было бы правильным способом сделать это/обходным путем?

Большое спасибо

ответ

0

Я с тех пор узнал много ASP, поэтому я уточню мои точки отказа:

и мы считаем, что это связано с ASP не обновляя в ViewState (но я не знаю, если это полностью верно)

Конечно, это абсолютное false. ASP обновляет весь ViewState на каждом посту, поэтому нет возможности не обновлять его.

МАС проблема проверки произошла, когда мы свернули на UserControl (Visible=true), потому что мы не указали проверку событий, которые контролируют, выполняемых (исполняющих пользовательские __doPostBack() S)

Таким образом, предположение entirelly неверно, и ошибка исчезла, просто зарегистрировавшись на RegisterForEventValidation() (см. here)