ASP.NET MVC与WebForms - 一个简单的问题

时间:2010-05-24 19:57:42

标签: asp.net-mvc webforms

我想知道一件事 - 我们知道,MVC模式是无状态的(它不使用ViewState,所以我们只使用HTML控件),但是如果我们在WebForms中也使用它们,它会变得无国籍?那么,通过这样做,我们越来越接近MVC模式了?

7 个答案:

答案 0 :(得分:5)

我认为你接近MVC的一个方面,但它仍然是一个日夜差异。

MVC基本上是关于模型视图控制器模式,而不是用于编写代码的控件类型。除非你在webforms中实现MVC模式(人们在ASP.NET MVC发布之前做了很多)并且从webforms中的回发模型迁移出来,否则你的平台仍然会有很大不同。

如果您想这样做,那么只需使用ASP.NET MVC即可。

答案 1 :(得分:3)

ASP.NET WebForms也是无状态的。所有HTTP通信都是。 ViewState只是一种通过隐藏的表单字段来保留某些状态的方法,这些字段的值是“编码的。”

没有什么可以阻止你在MVC中创建自己的隐藏字段,使其“有点有状态”。

答案 2 :(得分:1)

不,我们不在ASP.NET MVC中使用HTML控件。我们使用HTML帮助器。这有很大的不同。

答案 3 :(得分:1)

我认为你对无国籍意味着什么感到困惑。 所有 Web开发都是无状态的,只要服务器将页面发送到客户端然后忘记它。

.NET试图通过使用ViewState和Session使其“更容易”,但MVC和Web Forms是无状态的。

答案 4 :(得分:0)

MVC是一种架构模式。它可以在任何语言/框架/环境中实现(尽管有些使其比其他语言更容易。)

答案 5 :(得分:0)

我不知道为什么当微软用ASP.NET MVC在ASP.NET中实现MVC时,你会尝试将MVC应用于webforms ...

答案 6 :(得分:0)

与任何软件模型一样,基本原则之间不一定存在硬性定义。多年来,我一直在开发WebForms中松散的MVC实现的应用程序。

缺少 伪状态 (我不会在WebC中给予WebForms实际状态,网络 无状态)它是ASP.NET实现的许多方面之一,它是实际MVC模式的一部分。

除此之外,我还可以看到为什么人们会错过Web控件并希望在MVC中使用它们。但是为什么要在WebForms中使用HTML帮助程序?如果你愿意做这种类型的基础工作,那么你可能应该使用MVC。