2015-10-17 37 views
0

我正在使用ASP MVC應用程序。我創建了一個具有ajax方法的client.js文件,該方法調用控制器然後檢索數據。我的問題是,如該網頁坐在URL看起來是這樣的:從JS文件獲取正確的URL以進行ajax調用

http://my.clients.com/GST/2015-4/LEBIN/Profiles/ClientProfile/Index/79 

在我的AJAX方法我有

$.ajax({ 
    url: "ClientProfile/UpdateClient", 
    context: .. 
    data: ... 
}).done(function() { 
    ...; 
}); 

因此,使用該格式,我得到

http://my.clients.com/GST/2015-4/LEBIN/Profiles/ClientProfile/Index/79/ClientProfile/UpdateClient 

但我需要:

http://my.clients.com/GST/2015-4/LEBIN/Profiles/ClientProfile/UpdateClient 

另外,如果我的網址這樣前添加/:

$.ajax({ 
    url: "/ClientProfile/UpdateClient", 
... 

它格式化這樣的網址:

http://my.clients.com/UpdateClient 

怎樣才能獲得正確的路徑?我只需要更換/Index/83用正確的動作/UpdateClient不時髦內容替換或邏輯..

附加信息

爲什麼我不想只添加整個網址部分..是因爲/ 2015-4 /部分可能會改變幾次

+0

在這種情況下,爲什麼你不能指向'/ GST/2015-4/LEBIN/Profiles/ClientProfile/UpdateClient'? –

+0

/2015-4 /部分可能會多次更改 – jedgard

+0

如果您想要執行正確的操作,則應傳遞給ajax「/ GST/2015-4/LEBIN/Profiles/ClientProfile/UpdateClient」。如果您有多個調用控制器,則可以將「/ GST/2015-4/LEBIN/Profiles /」部分設置爲全局變量,並將其餘的url連接起來。 – Grissom

回答

3

基於我的評論:

yourJsFile.js:

var AjaxCallToController = { 
    callAjax: function(url){ 
     $.ajax({ 
      url: url, 
      context: .. 
      data: ... 
      }).done(function() { 
      ...; 
      }); 
    } 
} 

而且在yourView.cshtml

<script> 
AjaxCallToController.callAjax('@Url.Action("UpdateClient", "ClientController"'); 
</script> 

就是這樣的。

+0

這更清潔 – jedgard

1

只是使用../,這樣你回去1文件夾,所以它應該看起來像這樣

$.ajax({ 
    url: "../../../ClientProfile/UpdateClient", 
    context: .. 
    data: ... 
}).done(function() { 
    ...; 
}); 
+0

是的,工作,感謝的人。 – jedgard

相關問題