2011-05-15 67 views
3

我颳了asp.net web的表單,它總是發送viewstates這樣的:這個ASP viewstate是什麼意思?

<input type="hidden" name="__VIEWSTATE" value="/wEXAQUDX19QDwUNZnJtQ291cnNlSW5mbw8GblQKzmHhzYgCAw=="> 

當我在View State decoder解碼它,我得到這個對象:System.Collections.Hashtable

的__VIEWSTATE的精確值而變化,但它alwasy解碼爲對象System.Collections.Hashtable

這是怎麼回事?爲什麼視圖狀態的值會有所不同,但始終會對此進行解碼?

回答

1

Page是無狀態的,所以在每次回發之後,它不知道之前發生了什麼。 ViewState通常用於在回發之間保持信息。例如,如果您選擇了一個選項並創建了回傳,網站可能會將您的選項存儲在ViewState中,以便在回發之後仍然可以選擇您的選項。

你看到的是什麼什麼控件當前呈現在網站(一個Hashtable在這種情況下)在ViewState中存儲的信息。存儲在表中的值可能會有所不同,但控件似乎在回發之間存在。

您可以在MSDN上查看有關ViewStates的更多信息以及如何/何時使用它們here

+0

爲什麼值會變化?有沒有辦法從客戶端獲得更多關於HashTable的信息? – babonk 2011-05-15 23:08:02

+0

視圖狀態可能包含的不僅僅是哈希表。您看到的值是Base-64編碼的字符串,編碼中的更改可能是由存儲在ViewState中的任何內容引起的。網站上有任何改變嗎? – keyboardP 2011-05-15 23:10:12

+0

是的,這個頁面上的表單發生了變化(這是一系列連續的