我已经在ASP.NET MVC和ASP.NET Webforms中开发了一个web应用程序,我想知道不是遵循MVC模式规则的Webforms就像ASP.NET MVC一样吗?
我的意思是我们有.aspx文件,其中包含可视化(HTML和JavaScript),然后是代码隐藏文件,用于控制.aspx文件的用户交互和数据。然后我们可以创建一个Repository lager来获取和处理数据。
这不符合遵循MVC模式的规则吗?用于可视化的视图,用于控制用户交互的控制器以及用于视图和模型获取以及使用数据执行操作的数据?
我知道ASP.NET MVC和Webforms处理Postbacks和URL handeling的方式不同,但我不是比较两种ASP.NET技术,而是两种技术的基因中的MVC模式。
答案 0 :(得分:3)
ASP.NET Webforms绝对不遵循MVC模式。
在MVC中,您有三个元素,模型,视图和控制器。
在ASP.NET Webforms中,您拥有自己的页面(代码隐藏,标记编译为单个对象,而不是单独的),以及显示的任何数据。你真的没有控制器。您直接向页面而不是控制器请求,页面负责处理数据和呈现页面。绝对不像MVC那样分离。
答案 1 :(得分:0)
您在aspx页面中没有使用代码隐藏这一事实应该会给您一个提示,即MVC和webforms之间存在一些相当大的差异......您没有使用代码隐藏,是吗?
更不用说测试Webforms页面有多难了......你正在测试你的代码,对吗?
答案 2 :(得分:0)
您确实可以在Web窗体中使用MVC模式,但您所做的只是在回发中添加其他类或图层。此前的答案来自纯粹的观点,即技术中内置的分离更为清晰。但是,没有什么可以阻止您使用不同的类来表示模型视图和控制器,只有您的WebForms绑定到View。所有的通信仍然是在回发上完成的,但它仍然是技术上的MVC,仍然是正确使用的模式。