繁体   English   中英

ASP.NET MVC中的ASP.NET AJAX与jQuery

[英]ASP.NET AJAX vs jQuery in ASP.NET MVC

在ASP.NET MVC中哪一个更好用?

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

  1. 插件社区更加多样化,吸引了众多开发人员(不仅仅是MS堆栈)。 对于MS-AJAX,您现在非常关注UI小部件的客户端AJAX控件工具包。
  2. 我发现jQuery API远比MS AJAX提供的常用客户端任务更适用
  3. 鉴于在MVC中缺少WebForms烟雾和镜像,你有时需要对DOM进行一定程度的控制来完成某些事情,jQuery提供的CSS选择器引擎确实可以帮助你做到这一点。

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

就个人而言,尽管HtmlHelper支持ASP.NET Ajax,我发现jQuery ajax与JQuery表单插件一起成为在ASP.NET MVC中执行ajax表单帖子的最佳方式。

例如,在html产品列表页面上使用jquery调用,每个产品的表单允许将项目添加到购物篮中,单行jquery代码可以“ajaxify”页面上的所有表单

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

结合检查标头的控制器基类上的简单“IsAjaxRequest”属性:

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

和Controller中的一些逻辑返回正确的响应类型:

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

你有一个表格即使关闭javascript工作,并没有涉及ASP.NET Ajax。

我建议您阅读Dave Ward的博客Encosia而不是提出建议,该博客在MS Ajax / Update Panel和jQuery post机制上有一系列帖子。 Dave坚持认为jQuery的性能非常优越,因为它从服务器的传输中减少了大约100K

JQuery纯粹是客户端库。 Asp.Net Ajax包括客户端和服务器端功能。 恕我直言,比较并不公平。 他们可能会根据微软的计划相互补充。

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

我想提一下,微软支持JQuery,他们将在即将推出的Visual Studio版本中支持它。 有关更多信息,请访问 http://live.visitmix.com/ ASP.NET AJAX和jQuery没有太多重叠,因此您希望同时使用它们。

首先,记住ASP.NET MVC不支持或者更好的是没有回发概念可能是有用的。

  1. asp.net ajax它基于post-back,服务器端机制,它的任务是更容易在服务器端模式集成ajax功能
  2. jQuery,因为其他框架(例如Extjs)实现了纯客户端ajax

它仍然可以在asp.net mvc中使用asp.net服务器控件,asp.net ajax就是其中之一,但是它被认为是asp.net mvc,它可以分离关注点(视图)并将REST样式设置为关闭尽可能地考虑到这一点,最终的想法是:

  1. 使用ASP.NET Web Forms ASP.NET AJAX它是正确的选择
  2. 使用ASP.NET MVC最好尝试使用客户端,因此jQuery(或其他)更好

对不起我的英语不好

将ASP.NET AJAX与Web窗体一起使用,将jQuery与ASP.NET MVC一起使用

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

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

如果你正在谈论使用更新面板等的MS Ajax,那么我会说不,你不能在MVC中使用它们。 事实上,根本不要使用它们! 更新面板是模拟ajax,页面仍然经历其生命周期几乎击败了使用ajax的目的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM