2014-01-12 44 views
0

我剛開始學習ASP.Net。我試圖弄清楚頁面處理的原理。並且我收到了關於ViewState和Html Control的一些問題。ViewState和Html控制的新手問題

<input type="text" id="FirstName" /> 
<br /> 
<input type="text" id="LastName" runat="server" /> 

這是我的HTML。我填充了兩個文本框,然後單擊提交。在服務器上運行的控件保持了價值,另一個則沒有。

我檢查了類HtmlInputText,並發現它實現了接口IPostBackDataHandler,所以它不會受ViewState的影響? (我通過某人的博客瞭解,是嗎?)

我對ViewState的看法是保持每個控件的變化消息。頁面中的控件將根據默認設置和ViewState進行初始化。

但我仍然無法弄清楚什麼: ViewState是否保留「FirstName」的改變信息? Web控件就像在服務器上運行的HTML控件一樣,它們都實現了接口IPostBackDataHandler,所以ViewState是沒用的?

請幫我瞭解使用ViewState中或東西...的(我搞砸了...)

回答

0

一個的ViewPage從Page類繼承。所以它是一個「WebForm」,它有一個代碼隱藏,所以你可以基本上直接請求頁面。如果您使用的控件將執行正常的回發,則會發生回發,在這種情況下,您添加了WebForm行爲,這不是我們所要做的(將它們混合在一起),您應該確保控制器被執行。在最終版本中會有一些控制,而不是做一個「回傳」,確保一個Action方法將被執行。您無法從Controller訪問ViewState,因此它不會在控制器級別訪問。如果你有一個使用ViewState的控件,並按下一個「按鈕」或「鏈接」來確保執行一個Action方法,ViewState將不會被髮布,在這種情況下,當控件從ViewState獲取數據時,空。所以如果他們需要ViewState的話,這些控件將無法工作。

希望這有助於 來源:< Link>

+0

很抱歉,但我覺得我的問題不是關於這一點,我想知道的東西,如何ViewState的作品和IPostBackDataHandler的說法,是這樣嗎?謝謝。 – LEOxiaoD