ASP.NET MVC不适用于ViewState和Postback?

时间:2008-12-14 03:49:54

标签: asp.net asp.net-mvc controls postback

也许这是一个天真的问题。根据我的理解,ASP.NET MVC无法使用作为ASP.NET表单基础的ViewState和Postback。这是对的吗?

如果是这样,则所有ASP.NET Web控件都依赖于ViewState&回弹不能在ASP.NET MVC中使用,对吗?

3 个答案:

答案 0 :(得分: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

最后,查看Rob Conery的MVC店面项目: http://wekeroad.com/category/mvc-storefront

答案 1 :(得分:4)

  

这可能会让你感到惊讶,但我   意外地在MVC上放了一个Button   页面,并实现了Click事件,   它确实有效!

如果我错了,请纠正我,但我认为不需要ViewState。 它应该创建一个简单的HTML标记,如果您不在运行时更改按钮的属性(文本,事件,...),则不需要 VIEWSTATE

也许这就是它起作用的原因。

答案 2 :(得分:0)

这可能会让你感到惊讶,但我不小心在MVC页面上删除了一个Button,并实现了Click事件,它确实有效!

我很惊讶,也许它适用于这个简单的情况(它是当时页面上唯一的元素),以及响应以重定向结束的事实,但在某些情况下它似乎可以工作: )