Ajax,asp.net mvc3路由和相对网址

Man*_*eld 3 javascript ajax jquery relative-path asp.net-mvc-3

我有一个ASP.NET MVC3应用程序发布到这样的URL:

http://servername.com/Applications/ApplicationName/
Run Code Online (Sandbox Code Playgroud)

在我的代码中,我使用jquery ajax请求,如下所示:

$.get(('a/b/c'), function (data) {}, "json");
Run Code Online (Sandbox Code Playgroud)

当我在本地运行应用程序时,ajax请求直接转到正确的页面(是一个mvc路由),因为本地页面以"/"(localhost/a/b/c)结尾.

但是,当我发布时http://servername.com/Applications/ApplicationName/,尾随的"/"并不总是存在.url可能是http://servername.com/Applications/ApplicationName,然后导致ajax请求尝试加载http://servername.com/Applications/ApplicationNamea/b/c,由于显而易见的原因失败.

我已经考虑过重写url以附加一个尾随斜杠,但是A)它没有用,而且B)我觉得这个问题很难解决,并且配置javascript url工作会更好正确无论本地文件夹设置如何.

我确实试过"../a/b/c"和"/ a/b/c",但似乎都没有效果.

在此先感谢您的帮助!

Ste*_*eve 11

就个人而言,我倾向于在我的视图中使用服务器相对URL的全局变量,如:

var BASE_URL = '@Url.Content("~/")';
Run Code Online (Sandbox Code Playgroud)

然后你可以做以下事情:

$.get(BASE_URL + 'a/b/c'), function (data) {}, "json");
Run Code Online (Sandbox Code Playgroud)

我想补充一点,如果你想让它完全全局化,你可以将它添加到你的/Views/Shared/_Layout.cshtml中.