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 控件 - 网格 - 日历 - 搜索?