2008-12-14 74 views
18

也許這是一個天真的問題。在我的理解中,ASP.NET MVC無法與ViewState和Postback一起工作,這是ASP.NET窗體的基礎。那是對的嗎?ASP.NET MVC不適用於ViewState和Postback?

如果是這樣,那麼所有ASP.NET Web控件取決於ViewState & Postback不能在ASP.NET MVC中使用,對不對?

回答

28

ASP.NET的服務器端控件適用於WebForms,而不是MVC。 MVC不使用傳統ASP.NET意義上的控件(至少現在)。

MVC模型與WebForms模型完全不同;沒有更好或更差,但非常不同。使用MVC使開發人員更接近生成的HTML,使其本身更適合單元測試,並在UI和填充該UI的代碼之間提供強大的關注分離。乍一看,特別是對於經過強化的ASP.NET退伍軍人來說,MVC看起來像是一大步退步(如果你已經在編碼,那麼ASP COM開發的願景可能會在你的腦海中跳舞)。

但給MVC一試。一旦你習慣了它,它是非常有趣的,它的模型非常有吸引力。

在這裏閱讀更多: http://quickstarts.asp.net/previews/mvc/mvc_HowToRenderFormUsingHtmlHelpers.htm

此外,檢查出使用MVC這個有趣的博客引擎: http://www.codeplex.com/oxite

最後,檢查出羅布科納的MVC店面項目: http://wekeroad.com/category/mvc-storefront

+4

「至少尚未」 - 希望永遠不會! – UpTheCreek 2011-01-07 11:44:10

+0

同意! MVC模型只是在增長和增長。 – 2011-01-10 21:18:17

0

這可能讓你感到驚訝,但是我不小心將一個Button放在了MVC頁面上,並且實現了Click事件,並且它實際上起作用了!

我很驚訝,也許它適用於只是這個簡單的情況下(這是當時的網頁上的唯一元素),以及響應一個重定向結束的事實,但在某些情況下,它似乎它可以工作:)

4

這可能會讓你大吃一驚,但我 不小心掉一個MVC 上的按鈕,並實施了Click事件, 和它實際工作!

如果我錯了,請糾正我,但我認爲不需要ViewState。 它應該創建一個簡單的HTML標記,並且如果在運行時(文本,事件...)不改變按鈕的屬性,則不需要VIEWSTATE

也許這就是它工作的原因。