我在想...我习惯于使用Url.Actions来调用方法然后使用视图模型返回视图(甚至是相同的视图)的经典MVC风格。
但是当我想到jquery和AJAX时我想.. ..如果页面(视图)没有改变我不应该总是使用jquery ajax来执行我的命令???
例如,我有一个MVC应用程序,你单击一个按钮并调用一个执行长时间运行方法的Url.Action方法..所以从用户的角度来看,浏览器挂起大约一分钟......但如果我使用jquery ajax我可以调用那个方法...让它立即返回然后我可以设置一个定时器,调用另一个方法来显示这个长时间运行过程的进度...
我的理论是正确的吗?总是使用jquery ajax返回返回同一页面的方法。总是将Url.Action用于返回新页面的方法。
答案 0 :(得分:2)
首先,永远不会成为一种在特定场景中总是会使用的练习,并且尝试定义一种习惯将不可避免地造成坏习惯,你将永远不会成为更好的开发者。事情从一个项目变为另一个项目,需求变为需求。如果页面需要进行服务器调用而不刷新,请使用ajax。如果需要刷新或重定向,请使用url.action。澄清一下,ajax是异步的javascript和xml。 ajax的主要目的是使服务器调用异步,以便在浏览器中没有锁定。这允许您在服务器调用发生并等待结果时执行其他逻辑。它还允许您在向服务器提交表单时不刷新/重定向。这在某些情况下可能非常有用,但在其他情况下,可能没有那么多。
范围:我是一名在mvc4工作的.net开发人员,所以我对这个特定问题有很多经验。我们制作非常大规模的asp.net应用程序并广泛使用这个概念。我们在整个应用程序中使用了数千次ajax,但总有一些情况我们仍然使用默认的Web表单模型通过方法将数据发送到服务器端脚本。