也许这是一个天真的问题。根据我的理解,ASP.NET MVC无法使用作为ASP.NET表单基础的ViewState和Postback。这是对的吗?
如果是这样,则所有ASP.NET Web控件都依赖于ViewState&回弹不能在ASP.NET MVC中使用,对吗?
答案 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事件,它确实有效!
我很惊讶,也许它适用于这个简单的情况(它是当时页面上唯一的元素),以及响应以重定向结束的事实,但在某些情况下它似乎可以工作: )