2016-04-04 51 views
1

我正在使用淘汰java腳本,我有一個API調用控制器,這個相同的控制器有一些方法,所有工作正常 然而,當我放置一個特定方法的突破點永遠不會達到這個突破點。這是令人難以置信的,因爲當我在java腳本中放置一個斷點時,我可以看到有數據從控制器中的特定方法返回。有沒有人有任何想法可能會造成這種情況?斷點不在控制器上,但來自控制器的數據返回

這是我的敲除

function FetchDeviceRows(dtvm, item) { 
    $.when(getSecureData("/api/DeviceHierarchy?parentCostCentreId=" + item.assetInstanceId() + "&noChildren=" + item.noChildren() + "&orgLevel=" + item.orgLevel())) 
    .done(function (rows) { 
     InsertActualDeviceRows(dtvm, item, rows); 
     RefreshWholeDevicePage(dtvm); 
    }); 
} 

這是我的DeviceHierachy控制器方法正在由我的敲除accesed。這裏的斷點不會打,但是當我把一個破發點上我的淘汰賽 .done(函數(行)這表明它已經返回的數據

[HttpGet] 
public IEnumerable<DeviceHierarchyRow> Get(int parentAssetInstanceId, int noChildren, int orgLevel) 
{ 
    var hierarchies = _deviceHierarchyRepository.GetDevices(parentAssetInstanceId, noChildren); 
    return hierarchies.ToList().Select(h => new DeviceHierarchyRow(orgLevel + 1, 0, 0, "", "", h.noChildren, _pageSize, false)); 
} 
+0

瀏覽器是否使用緩存的結果? – Jasen

+0

我已清除我的緩存,所以我不認爲這是問題 – Zidane

+3

您在JavaScript代碼中的參數與api控制器操作中的參數名稱不匹配。你很可能會在你的控制器中發起另一個動作。在每一個動作中放置一個斷點,看看它碰到了哪一個斷點 – jontem

回答

1

您的查詢字符串是invaild。
既然你沒有爲您的web api上的參數parentAssetInstanceId設置默認值,這意味着它是默認參數,並且由於您傳遞的是parentCostCentreId,因此api找不到parentAssetInstanceId的值並返回500內部服務器錯誤,您應該在您的js控制檯除非你有另一個get方法,然後在parentCostCentreId需要在這種情況下你的斷點是在錯誤的地方

+0

感謝你說得很對,我的錯誤很愚蠢 – Zidane

+0

@Zidane沒問題,我自己做了很多次,學會了總是打開你的控制檯 – Toxicable