2008-12-14 127 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

也许这就是它工作的原因。