ASP.Net MVC、AJAX 和渐进增强

Posted

技术标签:

【中文标题】ASP.Net MVC、AJAX 和渐进增强【英文标题】:ASP.Net MVC, AJAX, and progressive enhancement 【发布时间】:2010-09-08 13:24:37 【问题描述】:

我正在寻找一种可靠的技术来将 Ajax 添加到工作的 ASP.NET MVC 应用程序中。我想使用 jQuery,并了解如何使用 jQuery 的 AJAX 功能。

我需要知道的是我应该如何编写我的控制器,这样我就可以在没有 javascript 的情况下运行网站,但同时使 AJAX 调用成为可能,而不需要单独的视图、单独的控制器或任何类型的路由黑客。我的目标是在启用 JavaScript 时增强工作应用程序,而无需复制或重新创建应用程序的元素。

【问题讨论】:

【参考方案1】:

通常,您会创建自己的网站,以便在不启用 JavaScript 的情况下运行。然后,您将添加使用 Ajax 增强您的网站所需的 unobtrusive JavaScript,例如为链接、表单提交等添加事件处理程序以发出 GET / POST 请求并相应地更新您的 UI。

您在 MVC 应用程序中需要的唯一更改是处理 Ajax 请求并将数据以 JSON、XML 等形式返回。

【讨论】:

【参考方案2】:

在您的控制器(从控制器派生)中,您可以调用 Request.IsMvcAjaxRequest() 来检查请求是普通 POST 还是 AJAX 请求。如果请求是从 AjaxForm 提交或 AsyncHyperlink 创建的,则情况会如此。 可以通过 javascript 使 Ajax 表单可见,同时隐藏标准表单。

【讨论】:

以上是关于ASP.Net MVC、AJAX 和渐进增强的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET / MVC 1.0 组件和 Ajax 控件 - 网格 - 日历 - 搜索?

asp.net MVC之整合AJAX

asp.net mvc 3 - ajax 表单提交和验证

Asp.net MVC 中Ajax的使用

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

ASP.NET MVC学习之Ajax(完结)