我正在研究一个小MVC 5应用程序,它有少量的视图和JavaScript文件。MVC AJAX调用url格式
项目结构是非常标准的,也就是控制器,视图,脚本等的正常布局,但我在部署到客户端系统时遇到了脚本中的AJAX调用问题 - 应用程序部署在虚拟目录,例如http://host/application/
。
该问题是由jquery ajax调用的url参数不能一致解析引起的。例如,一个脚本是高兴:
$.ajax({ url: 'controller/action' ....});
而另一个需要
$.ajax({url: '../controller/action' ....});
,最近另一个需要
$.ajax({url: '../action' ....});
我看不到,我已经做不同的事情对于这些脚本(或控制器或视图),为什么这些URL会以不同的方式生成?
我现在可以解决这个问题,但想了解问题的原因,所以我以后不会陷入混乱。
您是如何生成网址的?我假设通过'@ Url.Action()'?如果是这样,请检查您在Global.asax/RouteConfig.cs中设置的路线 – 2014-10-28 10:09:16
脚本不在视图中,而是在单独的文件中,并通过“部分”注入到视图中。脚本只有实际的控制器和操作,例如$阿贾克斯(网址:{url: '/信/ GetRecipient' .....}); – DilbertDave 2014-10-28 10:16:04
这不会真的听起来像mvc - 我已经使用它几个月了,并已使用最小的ajax。你能发布你的Maproute的内容吗? (在RouteConfig.cs中找到)。正如@RoryMcCrossan所说的,使用'@ Url.Action'或'@ Html.ActionLink'可能是你想要的 – 2014-10-28 10:17:47