2017-01-04 5 views
1

угловой HTTP POST:AngularJS POSTING 2D массиву

$http({ 
     contentType: "application/json; charset=UTF-8", 
     url: "myCSharpMethod", 
     method: "POST", 
     data: myData, // this is my 2D array (myData[[],[]]) 
     traditional: true 
    }) 
     .success(function(response){ 
      console.log(response)}; 

мой C# контроллер:

public string myCSharpMethod(string[][] myData){ 
    return myData[0][0]; 
    } 

Мои вопросы в том, что журнал консоли от post.success является нулевой ошибкой исключение. Пожалуйста помоги.

+0

Непонятно, как запрос поступает из запроса POST, который вы делаете к функции C#. Используете ли вы сервер приложений? ASP.NET? Пожалуйста, добавьте больше контекста и соответствующего кода на ваш вопрос, чтобы мы могли лучше понять, в чем проблема – DfKimera

+0

да, я использую asp.net – sgov090

+0

Можете ли вы распечатать необработанное значение 'myData'? – DfKimera

ответ

0

Попробуйте использовать JSON.stringify в своем сообщении:

$http({ 
    contentType: "application/json; charset=UTF-8", 
    url: "myCSharpMethod", 
    method: "POST", 
    data: JSON.stringify(myData), // this is my 2D array (myData[[],[]]) 
    traditional: true 
}) 

Кроме того, это всегда хорошая идея, чтобы создать модель представления и отправить его, а не только самого массива:

public class MyViewModel 
{  
    public string[][] TableData { get; set; } 
} 

и ваш подпись метода будет изменена на:

public string myCSharpMethod([FromBody] MyViewModel myData){ 
    return myData.TableData[0][0]; 
} 
+1

$ http будет JSON.stringify внутренне по умолчанию. «Традиционная» часть странная, хотя – charlietfl

Смежные вопросы