我还没有真正理解MVC模型或架构,但我读到和看到的是它分离了“关注点”,即表示UI和逻辑代码,对吧?但我知道WebForms架构也有一个代码隐藏模型,它将代码和UI分开。
在MVC中还有什么东西可以进一步分离周围的东西吗?
发布于 2011-01-16 00:31:04
MVC和WebForms之间的主要区别在于,在WebForms中,接收请求的是视图(/foo.aspx),而在MVC中,控制器(/controller)将操作模型并选择适当的视图进行呈现。另一个重要的区别是所有HTTP上下文堆栈(请求、响应、会话等)在ASP.NET MVC中的抽象类和接口后面进行了抽象,这允许更好地分离关注点和单元可测试性。与WebForms相比,您还可以对ASP.NET MVC中生成的标记进行更多的控制。在server中,标记实际上是由服务器端控件生成的。
发布于 2011-01-16 00:30:42
代码隐藏正是使UI与WebForms中的业务逻辑紧密耦合的原因--代码隐藏是UI的一部分。
使用控制器而不是代码隐藏是MVC解耦这些问题的主要方法之一。
发布于 2011-01-16 01:19:41
考虑这一点最简单的方法是,.aspx和代码幕后本质上是同一组件UI的两个不同视图。完全可以在MVC中使用后台代码(如果您使用的是webforms视图引擎),但是视图和后台代码都被认为是UI的一部分。控制器是一个独立的实体,模型也是如此。
https://stackoverflow.com/questions/4700692
复制相似问题