在ASP.NET MVC中使用哪种更好?
个人而言,我更喜欢 jQuery,理由如下:
就 MS AJAX 在 MVC 中提供的功能而言,它可以为你提供许多便利,例如快速“AJAXify”表单和链接,但在我看来,添加价值为 90kb 的 JavaScript 并不值得,特别是当相应的 jQuery 调用(例如 $.get、$.post、$(element).load)都相对容易使用时。
个人而言,尽管HtmlHelper支持ASP.NET Ajax,我发现使用jQuery ajax和JQuery forms插件来完成ASP.NET MVC中的ajax表单提交是最好的方式。
例如,在一个包含商品列表的html页面上,每个商品都有一个表单,允许将该商品添加到购物篮中。通过一行jQuery代码,“ajaxify”页面上的所有表单。
$(".productListItem form").ajaxForm({ target: '#extraInfoSection' });
结合一个简单的控制器基类上检查头部信息的'IsAjaxRequest'属性:
Request.Headers["X-Requested-With"] == "XMLHttpRequest"
并在控制器中添加一些逻辑以返回正确的响应类型:
return IsAjaxRequest ? (ActionResult) View("BasketPartial", basket) : new RedirectBackToReferrerActionResult();
如果没有使用ASP.NET Ajax,即使在JavaScript关闭的情况下,您的表单仍然可以正常工作。
JQuery是一个纯客户端的库。Asp.Net Ajax包括客户端和服务器端功能。在我看来,这两者的比较并不公平。根据微软的计划,它们可能互相补充。
有一个与ASP.NET AJAX配合使用的MVC变体--使用AjaxHelper和扩展。 这可以很好地与jQuery协同工作。 我有一些实例,在同一页上同时使用两者; 使用MVC AJAX通过点击按钮更新DIV并使用jQuery获取不同操作的JSON数据。 在MVC中,应该使用标准的ASP.NET AJAX(UpdatePanels等),而不是在WebForms领域使用。
在ASP.NET MVC中仍然可以使用ASP.NET服务器控件,其中包括ASP.NET AJAX,但是ASP.NET MVC的设计思想是将关注点(视图)分离,并尽可能地符合REST风格,因此我们可以得出以下结论:
对我的英语表示抱歉。
使用ASP.NET AJAX与Web Forms,以及jQuery与ASP.NET MVC