【问题标题】:JQuery and ASP.NET AJAX differences in MVCMVC 中 JQuery 和 ASP.NET AJAX 的区别
【发布时间】:2009-04-21 08:12:11
【问题描述】:
看看新的 ASP.NET MVC 框架,它带有用于 ASP.NET AJAX 和 JQuery 的 javascript 文件。
谁能解释一下 ASP.NET AJAX 给了我什么而 JQuery 没有?
我需要同时使用两者吗?你能举例说明我需要/不需要同时使用两者吗?
我在许多非 ASP.NET 项目(PHP 和原型网站)中使用过 JQuery,并且非常愉快地使用了 JQuery Ajax,但我不确定哪种方法最适合 ASP.NET。
感谢您的宝贵时间
嗅探器
【问题讨论】:
标签:
jquery
asp.net-mvc
asp.net-ajax
【解决方案1】:
我最近一直在编写没有 Microsoft AJAX 的 ASP.NET MVC 页面。结论?你需要做更多的连接才能让它工作,尤其是服务器端通信(提示:使用 JSON.NET,而不是内置的东西),但它更短且更具可读性。我不会再使用 Microsoft AJAX。
ASP.NET AJAX 为您提供:
- 一组提供 AJAX 功能的 ASP.NET 控件。这些用起来很痛苦,写起来更痛苦。 jQuery 扩展更简洁,但对于 ASP.NET 程序员来说学习曲线更陡峭。
- 能够自动生成执行 AJAX 调用的类。这真的很酷,但你可以没有它。
- 一个命名空间和事件模型,如果你用 jQuery 风格编程就不需要了。
- 能够部分呈现页面。仅当您不使用 MVC 时才有用,即使在那时也不建议使用。
结论:使用jQuery,去掉Microsoft AJAX。
【解决方案3】:
我使用 JQuery 检索 Json 数据,使用 Microsoft AJAX 发布表单。你可以用 JQuery 做这两个,但我真的不喜欢自己序列化表单。归根结底,Microsoft AJAX 相当不错 - 如果您需要自己编写更少的 JavaScript 代码,那么您需要维护的代码就更少了。
所以回答您的问题 - Microsoft AJAX 并没有真正添加 JQuery 所没有的任何内容。它只是允许您使用帮助程序,这些帮助程序被翻译成几乎与您可以使用 JQuery 编写的 JavaScript 代码相同的 JavaScript 代码。就像我说的 - 你自己编写的 JavaScript 代码越少,你需要维护的代码就越少。
没有真实的例子说明你应该或不应该在哪里使用其中一个或另一个 - 这取决于个人喜好 IMO。
【解决方案4】:
Asp.Net AJAX 是为 Asp.Net WebForms 而设计的,而不是 MVC。它被设计用来做许多 jQuery 已经做过的事情。在 MS 同意将 jQuery 与 Asp.Net MVC 捆绑是一个好主意之前,他们只有 Asp.Net AJAX。
Asp.Net AJAX 尝试在客户端浏览器中复制服务器端环境的一部分——您可以通过类似 MS 的 JS 命名空间看到这一点。当一切都基于回发模型时,它是为 WebForms 设计的。
MVC 范式试图通过诚实地说明 HTTP 的工作原理来解耦和简化 Web 开发的各个方面。 Asp.Net AJAX 并不真正适合这个领域,因为它与 WebForms 设计得非常紧密。就像您可以hack 让 WebForms 控件在 MVC 中工作(因为它仍然构建在 ASP.NET 核心之上)一样,您也可以让 Asp.Net AJAX 在 MVC 中工作 - 但真正的重点是:
jQuery 和 MVC(根据设计和定义)是相互适用的。
(希望我的回答不要太主观:D)