MVC和AJAX概念是如何相关的?

时间:2009-07-28 05:19:20

标签: ajax asp.net-mvc model-view-controller

经过十年的桌面开发后,我正在深入研究Web开发,并且我正在努力掌握我正在学习的许多概念。我一直在阅读的两个最新概念是MVC(特别是ASP.NET MVC)和AJAX。我理解MVC是用于分离逻辑和数据的模式,而AJAX是用于创建异步和动态网页的各种Web技术的组合。

  1. 这两者有什么关系?
  2. 两者可以或应该一起使用吗?
  3. 如果是这样,你能举出一些简单的例子吗?
  4. 如果这些都是奇怪的问题,我很抱歉,我正在将苹果与橙子进行比较,原谅我,因为我仍然是一个巨大的巨型菜鸟。

3 个答案:

答案 0 :(得分:6)

Ajax只是请求数据的方式:通常,使用Ajax,而不是请求完整的HTML网页,您只需要:

  • 页面的一部分(例如,您要刷新的屏幕的一部分的HTML代码,而不重新加载整个页面)
  • 或一些数据;使用JSON或XML作为数据交换格式,例如

MVC描述了用于:

的堆栈
  • 访问数据并执行操作/计算/其中的任何内容(M)
  • 提出(V)
  • 通过Controller,确定应该使用哪个Model和View来提供您请求的数据。

当您使用Ajax请求时,您完全按照提供整页的方式执行操作:

  • 获取请求
  • 确定应该调用哪种模型和方法
  • 打电话给他们(也许他们会用数据库或其他任何东西做点什么)
  • 将数据传递给View,这将呈现它

两个不同之处是:

  • 在一种情况下,“视图”会呈现完整的HTML页面:在另一种情况下,只显示其中的一部分或某些JSON / XML格式
  • 在一种情况下,请求通常以异步模式完成

Ajax与否,你可以自由使用MVC ......或者不是!
如果您使用MVC进行非Ajax请求,那么,为什么不对Ajax请求这样做呢?

抱歉,我不会提供任何代码示例 - 我不是.NET开发人员,因此无法提供帮助(但其他语言的概念相同;-) )

答案 1 :(得分:4)

我会咬......

  1. 除了两个网络概念之外,它们之间没有任何关联。 Ajax是一种执行HTTP请求和处理结果的方法。 MVC是用于构建Web应用程序的架构模式。

  2. 是。无论您使用哪种架构来构建Web应用程序,都应该在有意义的地方使用Ajax。 Ajax可以提高应用程序的性能,并通过消除膨胀的数据传输和屏幕闪烁/刷新来改善用户体验和UI。

  3. 您可以通过许多javascript框架轻松使用Ajax,例如JQuery。只需下载并在您的应用程序中包含框架.js文件,从您的html引用它,并阅读有关如何发出Ajax请求的documentation

答案 2 :(得分:2)

他们是如何相关的?

我假设您从ASP.NET开发的POV中获取此信息。

这只是因为普通的Ajax(+ JSON)在ASP.NET MVC上比ASP.NET Webforms更好。由于ASP.NET Webforms将视图和控制器混合在一起的方式(更不用说Postback& Viewstate - 它允许前Ajax页面克服Web无状态),这最初非常困难。

ASP.NET服务器控制的方式不能直接(或至少很容易)从Javascript访问实际上使得在ASP.NET Ajax UpdatePanel出现之前不可能使用传统的Ajax(恕我直言,另一个拐杖)。

随着ASP.NET MVC的出现,现在使用直接的Ajax库和JSON for ASP.NET Web应用程序要容易得多。