【发布时间】:2010-10-21 02:56:15
【问题描述】:
ASP.NET MVC 中哪个更好用?
【问题讨论】:
标签: asp.net jquery asp.net-mvc ajax
ASP.NET MVC 中哪个更好用?
【问题讨论】:
标签: asp.net jquery asp.net-mvc ajax
我个人更喜欢 jQuery,原因如下:-
就 MS AJAX 在 MVC 中为您提供的功能而言,它可以为您提供一种快速“AJAXify”表单和链接的方法,但就我而言,添加 90kb 的 javascript当 jQuery 中的等效调用(例如 $.get、$.post、$(element).load)相对容易使用时,这样做并不值得。
【讨论】:
就个人而言,尽管 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 的情况下也能正常工作。
【讨论】:
我建议您阅读 Dave Ward 的博客Encosia,而不是提出建议,该博客有一系列关于 MS Ajax/更新面板与 jQuery 发布机制的帖子。 Dave 坚持认为 jQuery 的性能非常优越,因为它减少了大约 100K from the transmission to and from the server。
【讨论】:
JQuery 是纯粹的客户端库。 Asp.Net Ajax 包括客户端和服务器端功能。恕我直言,比较并不公平。按照微软的计划,它们可能会相互补充。
【讨论】:
有一个用于 MVC 的 ASP.NET AJAX 变体——与 AjaxHelper 和扩展一起使用。这与 jQuery 配合得很好。我有在同一页面上同时使用两者的实例;使用 MVC AJAX 更新基于单击按钮的 DIV 并使用 jQuery 获取 JSON 数据以用于同一页面上的不同操作。标准 ASP.NET AJAX(UpdatePanels 等)应该在 WebForms 世界中使用,而不是在 MVC 中。
【讨论】:
我想提一下,Microsoft 支持 JQuery,他们将在即将发布的 Visual Studio 版本中支持它。欲了解更多信息,请访问http://live.visitmix.com/。 ASP.NET AJAX 和 jQuery 没有太多重叠,所以你想同时使用。
【讨论】:
首先,请记住 ASP.NET MVC 不支持,或者更好的是,它没有回发概念。
仍然可以在 asp.net mvc 中使用 asp.net 服务器控件,asp.net ajax 就是其中之一,但是 asp.net mvc 它被认为是为了分离关注点(视图)并成为 REST样式尽可能接近,因此考虑到这一点,最终的想法是:
对不起我的英语
【讨论】:
将 ASP.NET AJAX 与 Web 窗体结合使用,将 jQuery 与 ASP.NET MVC 结合使用
【讨论】:
您可能会看到的另一个替代方案是 Ajax.NET,http://www.ajaxpro.info/。我认为它比用于 WebForms 的 ASP.NET AJAX 更好。它也可以在 MVC 下运行。
【讨论】:
首先,您可以使用任何一种,只要您在谈论 Microsoft Ajax 时,您只是指客户端库。您可以使用 MS Ajax 客户端库和大多数工具包扩展程序,而无需任何服务器端控件。我使用 Web 表单和 Microsoft Ajax 构建了一个相当大的应用程序,然后将其转换为 MVC/jquery。我发现我使用的 MS Ajax 库中的功能越来越少。可用的插件太多了,以至于连 ajax 工具包都过时了。
如果您正在谈论使用更新面板等的 MS Ajax,那么我会说不,您不能在 MVC 中使用它们。事实上,根本不要使用它们!更新面板是模拟 ajax,页面仍然经历其生命周期,几乎违背了使用 ajax 的目的。
【讨论】: