ASP.Net MVC,AJAX和渐进增强

时间:2020-03-05 18:51:25  来源:igfitidea点击:

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

我需要知道的是如何编写控制器,以便我可以在不使用JavaScript的情况下运行该站点,但是同时可以进行AJAX调用,而无需单独的视图,单独的控制器或者任何形式的路由攻击。我的目标是在启用JavaScript时增强可工作的应用程序,而无需复制或者重新创建该应用程序的元素。

解决方案

回答

通常,我们将创建站点,以便它在不启用JavaScript的情况下可以正常工作。然后,我们将添加使用Ajax增强网站所需的简洁JavaScript。为链接,表单提交等添加事件处理程序,以进行GET / POST请求并相应地更新UI。

我们需要在MVC应用程序中进行的唯一更改是处理Ajax请求并将数据以JSON,XML等返回。

回答

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