我将MVC应用程序划分为多个区域,当我尝试从Engineer区域进行AJAX调用时,相对URL会转换为与我的意图不符的URL;
以下是示例:
这是Ajax调用的URL:
$.ajax({
cache: false,
type: 'GET',
url: 'api/JobData/GetSitesByClientId',
data: {
'clientId': selectedClient
}
})
这是生成的网址:
http://localhost:53433/Engineer/Jobs/api/JobData/GetSitesByClientId?clientId=09659dc4-faa7-4edb-af27-ecb7416a82fb
这是我想要生成的网址:
http://localhost:53433/api/JobData/GetSitesByClientId?clientId=09659dc4-faa7-4edb-af27-ecb7416a82fb
我怎样才能做到这一点?
提前感谢您的帮助
答案 0 :(得分:3)
您可以在URL的开头添加前导斜杠/
。但是,我不建议使用此方法,因为如果您的应用程序部署在子目录中(例如:www.host.com/myapp/
),那么路径将是错误的
在这种情况下我做的是在我的视图的javascript上下文中定义一个全局的rootPath变量
<强>布局强>
<script>
var rootPath = '@URL.Content("~")';
</script>
然后在Javascript文件中,我将rootPath附加到我想要使用的任何路径
$.ajax({
url: rootPath + 'mycontroller/mymethod',
method: 'GET',
success:function(){
alert("success");
}
});