2013-04-24 87 views
0

我有一個MVC .NET 4.5應用程序,使用帶有JSON的Ajax請求來擊中服務器端的MVC控制器。在控制器的功能如下:MVC控制器沒有正確解析Ajax請求?

[HttpPost] 
public void SomeFunction(int int1, List<int> listOfInts, int int2) 
    { 
     someOtherFunction(int1, listOfInts, int2); 
    } 

和Ajax請求如下:

actionData = { 
      int1: 1, 
      int2: 2, 
      listOfInts: list 
     } 
$.ajax({ 
     type: 'POST', 
     url: actionURL, 
     data: JSON.stringify(actionData), 
     traditional: true, 
     dataType: "json", 
     contentType: "application/json; charset=utf-8", 
     success: functionIfSuccessful() }, 
     error: functionIfNotSuccessful() } 
    }); 

如果我看JSON ojbect傳遞的提琴手請求的格式是:

int1=1 
int2=2 
listOfInts=[1,2] 

問題是,當MVC控制器中的功能被擊中,int1int2屬性從請求正確設置,但listOfInts參數爲空。我試圖改變它使用一個原始數組而不是一個List對象,但這並沒有改變任何東西。

+0

你有沒有試過有一個類將包裝int1,int2和listOfInts? – epignosisx 2013-04-24 20:15:06

+0

像DTO一樣?我一直在考慮它。但還沒有做到。如果可以的話,我想避免它,因爲這是我的網站中唯一使用DTO的地方。我不想爲單個請求創建一個。 – 2013-04-24 20:26:43

回答

0

固定。這個問題是由所提供的代碼之外的東西造成的。構建整數列表的JavaScript不應該在方括號中添加括號。刪除這些,它像一個魅力。