2017-01-03 121 views
0

我能夠從一個角度控制器調用C#方法,例如:二維數組angularjs到C#

angualarjs:

 $http.post('myC#Function', { "input": input) 
     .success(function (response) { 
      console.log("success send response: " + response); 
     }) 
     .error(function (response) { 
      console("error send response: " + response); 
     }); 

C#

  public string myC#Function(string input) 
    { 
     return "success"; 
    } 

我的問題出現時,我嘗試從角度傳遞2D陣列到C#控制器,例如:

angularjs:

 var my2DArray= [[], []]; 
    // array is populated here (not shown) 
     $http.post('myC#Function', { "inputArray": my2DArray) 
     .success(function (response) { 
      console.log("success send response: " + response); 
     }) 
     .error(function (response) { 
      console("error send response: " + response); 
     }); 

C#

 public string myC#Function(string[,]input) 
{ 
    return "success"; 
} 

任何幫助將appriciated。

回答

0

使用Newtonsoft Json庫(必須已經存在於您的項目中)。

public string YourCSharpFunction(string yourJson2DArrayFromAngular) 
{ 
    var your2DArrayInCSharp = JsonConvert.DeserializeObject<string[,]>(yourJson2DArrayFromAngular); 
    return "success"; 
} 
+0

即時得到相同的錯誤對方的回答。當我嘗試從c#返回輸入[0] [0]時,即使填充它,我也會收到NullReferenceException錯誤。有任何想法嗎? – sgov090

+0

你在調試模式下的your2DArrayInCSharp中有什麼?這是對的嗎 ? – Floc

0

使用JSON.stringify

$http.post('myC#Function', { JSON.stringify({ input : input }) }) 

發送數據和C#函數簽名

public string myC#Function(string[][] input) {} 

您應該添加contentType: "application/json; charset=UTF-8"post header

+0

當我嘗試從c#返回輸入[0] [0]時,即使填充它,我也收到NullReferenceException錯誤。有任何想法嗎? – sgov090

+0

你在哪裏得到這個異常?我的意思是這行代碼 –