2009-04-22 73 views

回答

32

个人而言,我更喜欢jQuery的,原因如下: -

  1. 插件社区是更为多样,从广泛的背景(而不仅仅是MS堆栈)吸引开发者。对于MS-AJAX来说,你现在几乎受限于客户端的AJAX控件工具包。
  2. 我发现jQuery API比MS AJAX提供的更适用的常见客户端任务
  3. 由于缺乏WebForms MVC中的烟雾和镜像,有时需要对DOM进行严格的控制才能完成某些操作, jQuery提供的CSS选择器引擎确实可以帮助你做到这一点。

就MS AJAX为您提供的MVC内容而言,它可以为您提供“AJAXify”表单和链接的快速方法,但就我而言,添加90kb当jQuery中的等价调用(例如$ .get,$ .post,$(element).load)相对容易使用时,值得使用的javascript来做这件事并不值得。

1

我想提一下,微软支持JQuery,他们会在即将到来的Visual Studio版本中为它提供支持。欲了解更多信息,请访问http://live.visitmix.com/。 ASP.NET AJAX和jQuery不会重叠太多,所以你想使用两者。

4

JQuery纯粹是客户端库。 Asp.Net Ajax包含客户端和服务器端功能。恕我直言,比较并不公平。它们可能会与微软的计划相辅相成。

+2

我不同意查理,JQuery可以对服务器端函数进行回调,就像ASP.NET Ajax使用Javascript来做同样的事情一样。它们都是客户端框架,ASP.NET AJAX对回发代码有更好的封装,而JQuery则提供了更多的控制权。 – emalamisura 2010-03-05 15:55:51

2

MVC的ASP.NET AJAX有一个变体 - 与AjaxHelper和扩展一起使用。这与jQuery一致。我有两个在同一页面上使用的实例;使用MVC AJAX更新基于点击按钮的DIV,并使用jQuery获取同一页面上不同操作的JSON数据。标准ASP.NET AJAX(UpdatePanels等)应该用在WebForms世界中,而不是MVC中。

18

个人而言,尽管HtmlHelper支持ASP.NET Ajax,但我发现jQuery ajax与JQuery forms plugin一起是在ASP.NET MVC中执行ajax表单帖子的最好方法。

例如与HTML产品列表页面上一个jquery呼叫针对每个产品允许项目被添加到购物篮形式,的jquery的一行代码可以“ajaxify”的所有页面上的形式

$(".productListItem form").ajaxForm({ target: '#extraInfoSection' }); 

组合与控制器基类简单的“IsAjaxRequest”属性,检查标头:

Request.Headers["X-Requested-With"] == "XMLHttpRequest" 

,并在控制器返回正确的响应类型的一些逻辑:

return IsAjaxRequest ? (ActionResult) View("BasketPartial", basket) : new RedirectBackToReferrerActionResult(); 

即使在关闭了JavaScript并且没有涉及ASP.NET Ajax的情况下,您也可以使用表单。

+3

这是否适用于服务器端验证? – 2010-08-29 21:04:25

1

首先,它可能是有用采取记住,ASP.NET MVC不支持,或更好的,不具有回发的概念..

  1. asp.net AJAX它是基于在后端的服务器端机制上,它的使命是让服务器端模式更容易集成AJAX功能
  2. jQuery,因为其他框架(如Extjs)实现纯粹的客户端AJAX

它仍然可以在asp.net mvc,asp.net ajax中使用asp.net服务器控件其中之一,但它被认为是分离关注(视图),并尽可能接近REST风格,因此考虑到这一点,最终的想法是:

  1. 使用ASP.NET Web窗体ASP.NET AJAX这是正确的choiche
  2. 使用ASP.NET MVC,最好去尝试客户端,因此jQuery的(或其他人)是更好的

对不起,我的英语

1

将ASP.NET AJAX与Web窗体和带有ASP的jQuery一起使用。NET MVC

+0

这背后的动机是什么? 另外,当开始一个新的项目时,你会选择哪一个,ASP.NET AJAX与Web Forms或带MVC的jQuery? 为什么不用jQuery与Web窗体和页面方法/ Web服务? 我很忙决定是否值得切换到MVC,即使它不是那么广为人知 - 虽然我确实来自Java Struts/JSF背景,所以无论如何MVC范例在我心中。 – jamiebarrow 2010-07-28 08:48:53

9

而不是作出建议,我建议你阅读戴夫沃德的博客Encosia有MS Ajax /更新面板与jQuery发布机制的一系列职位。戴夫认为,jQuery的性能非常优越,因为它削减了大约100K from the transmission to and from the server

+6

这些帖子更关注WebForms而不是MVC。在这篇文章中提到的100k保存通常是与UpdatePanel(ViewState Delta等)一起使用的垃圾。在MVC中,沿着线路来回走动的应该大致相同(这只是XmlHttpRequest上方的抽象不同)。 – 2009-04-22 22:12:21

1

您可能会看到的另一种替代方法是Ajax.NET,http://www.ajaxpro.info/。我认为这比WebForms的ASP.NET AJAX更好。它也可以在MVC下运行。

1

首先,您可以使用,只要您在谈论Microsoft Ajax时,您只是指客户端库。您可以使用MS Ajax客户端库和大多数没有任何服务器端控件的工具包扩展程序。我已经使用Web窗体构建了一个非常大的应用程序,然后将Microsoft Ajax转换为MVC/jQuery。我发现我在MS Ajax库中使用的功能越来越少。有很多插件可用,它甚至使ajax工具包过时。

如果您在使用更新面板等讨论MS Ajax,那么我会说不,你不能在MVC中使用它们。事实上,根本不要使用它们!更新面板是模拟ajax,页面仍然通过它的lifecylce几乎击败了使用ajax的目的。