2D数组angularjs到c#

时间:2017-01-03 13:26:31

标签: c# angularjs multidimensional-array

我可以从角度控制器中调用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数组从angular传递给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";
}

任何帮助都会得到满足。

2 个答案:

答案 0 :(得分:0)

使用Newtonsoft Json库(必须已经在您的项目中)。

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

答案 1 :(得分: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