在mvc中,我们怎么能说松散情侣和完全控制html,任何机构可以解释我,任何参考,我在谷歌搜索但我不清楚。
答案 0 :(得分:1)
ASP.NET MVC使用标准HttpContext类的抽象,例如HttpContextBase,HttpRequestBase,HttpResponseBase,HttpSessionBase,它允许单独进行单元测试,因为这些类是抽象的并且可以被模拟。在经典的ASP.NET WebForms中,单元测试代码要困难得多,因为它依赖于真正的ASP.NET上下文类,这些类几乎不可能被模拟,因为它们需要真正的上下文才能工作。恕我直言,这是ASP.NET MVC与经典WebForms相比最好的事情之一。
您还可以在各个方面之间进行更清晰的分离:模型逻辑,视图逻辑和控制器逻辑。这并不意味着在经典的WebForms中你无法实现这种分离。如果您遵循标准方法将视图中的所有内容和代码放在后面,那就更难了。
与经典的ASP.NET WebForms相反,在WebForm中将UserControl放置在WebForm中,WebForm在运行时为您生成HTML(对此生成的HTML有很多或更少的控制权),在ASP.NET MVC视图中,它就是你编写HTML因此您可以编写任何您喜欢的HTML。
答案 1 :(得分:0)
松散耦合 - 这主要适用于用于开发完整网站的单位。在Asp.net MVC或任何其他MVC模式中,MVC本身代表模型 - 视图 - 控制器,因此这是关注点的分离,以及每个项目不是它意味着做什么的事实ie-view处理所有ui层意味着可以单独测试每个单独的实体。
完全控制HTML - 在传统的asp.net中,标记由asp.net框架生成,因为使用了许多服务器控件。在asp.net MVC中,所有标记都是用户编写的,或者至少可由用户编辑
要了解它,请阅读更多关于MVC模式及其在asp.net MVC中的使用方法
答案 2 :(得分:0)
这两个想法(有些)是分开的。这可能是你的困惑所在。
ASP.NET MVC(以及一般的MVC范例)被认为是松散耦合的,因为每个问题 - 模型,视图和控制器 - 处理应用程序的不同方面。模型=数据,视图=用户界面,以及控制器管理这两者之间的交互和业务逻辑(如果你使用MVC的洋葱范例,它可以进一步分离,具有额外的子层)。这种关注点的分离允许改进用户测试,模拟和重构,这是WebForms没有的(或者至少不那么容易)。
您可以完全控制HTML的原因是ASP.NET的历史。 ASP.NET最初始于WebForms。 WebForms的创建是为了响应那些非常喜欢他们能够创建的应用程序的“拖放”和“点击”范例的开发人员。将一个按钮拖到屏幕上,双击以获取与其关联的操作,编写一些代码,完成!这很容易。
与此同时,这种轻松隐藏很多正在发生的潜在“东西”。根据设计,HTTP是无状态的。 WebForms专门隐藏了所有无状态,并且实际上试图通过围绕管理ViewState的许多不同技术使HTTP看起来很有状态。此外,这种拖放范式删除了人们对HTML直接控制的控制。 ASP.NET MVC通过让您直接在View中编写HTML来“修复”(有些人不认为这是一个修复 - 它取决于您关心的内容)。因此...更多的控制。
此处有关WebForms模型的其他一些有用的信息:https://stackoverflow.com/questions/46031/why-does-the-asp-net-web-forms-model-suck