2014-01-30 59 views
1

我有一個jQuery代碼,它打開一個對話框。這個對話框是一個局部視圖,它從jQuery Ajax調用「http://test.com/ControllerA/ViewDetails」的響應中呈現。 Ajax調用的代碼看起來像下面Jquery Ajax MVC控制器URL問題

$.ajax({ 
    url: "ViewDetails", 
    type: "GET", 
    dataType: "html", 

對話框有按鈕,其中有再拍jQuery的Ajax調用(這已經違背了不同的控制器和動作)。 Ajax代碼如下所示。

$.ajax({ 
    url: "ControllerB/Search", 
    type: "GET", 
    dataType: "html", 

上面的ajax調用未能找到搜索操作,因爲URL將更改爲http://test.com/ContollerA/ControllerB/Search

我覺得這是與路由配置相關的東西。但我需要你們所有人的指示。

+1

在URL之前添加「〜/」即「〜/ ControllerB/Search」,它代表根/ URL的進一步路徑,所以在你的情況下http://test.com/ControllerB/Search – SeeTheC

+0

如果你正在外部化URL單獨的javascript變量在隱藏字段中分配url,然後在javascript文件中使用隱藏字段的值。 – Thanigainathan

回答

5
$.ajax({ 
    url: "@Url.Action("ViewDetails", "ControllerA")", 
    type: "GET", 
    dataType: "html", 

$.ajax({ 
    url: "@Url.Action("Search", "ControllerB")", 
    type: "GET", 
    dataType: "html", 

這種方式,你正在使用的路由表,而不是生成的URL威利願意不願意

0

最好的辦法是使用

url: '../ControllerA/ViewDetails' 

它工作了我當文化是在網址

+0

這可以在同一頁面中呈現的局部視圖中工作。在我的情況下,我打開一個對話框。所以我需要使用@ Url.Action。 – Chandan