C# MVC AngularJS: методы контроллера вызываются, но не получают значения от метода $ http.post () - PullRequest
1 голос
/ 10 июля 2020

У меня есть приложение Angular, которое вызывает метод c#mvc:

AngularJS:

    var data = JSON.stringify({ 'panelists': $scope.arr, 'webId': $scope.webinarId });

    //Call the services
    $http.post('/Home/CreatePanelists', JSON.stringify(data))
        .then(function (response) {
            if (response.data)
                $scope.msg = 'Post Data Submitted Successfully!';
        }, function (response) {
            $scope.msg = 'Service not Exists';
        });

Содержание данных:

{"panelists":[{"name":"ali","email":"ali@email.com"},{"name":"tom","email":"tom@email.com"},{"name":"arthur","email":"arthur@email.com"}],"webId":94395753244}

Добавлены следующие файлы:

/ Models / Home / Panelist.cs

public class Panelist
{
    public string name { get; set; }
    public string email { get; set; }
}

/ Models / Home / Parameters. cs

public class Parameters
{
    public IList<Panelist> panelists { get; set; }
    public string webId { get; set; }

}

Обновлен контроллер:

/ Controllers / HomeController.cs:

public ActionResult CreatePanelists(Parameters data)
{
     System.Diagnostics.Debug.WriteLine(data.webId);
     System.Diagnostics.Debug.WriteLine(data.panelists);

     return new EmptyResult();
}

К моменту, когда отладчик входит в метод CreatePanelists, Я добавил наблюдение за данными, и оба участника панели и webId равны нулю.

Я не понимаю, в чем проблема. Когда я отлаживаю код AngularJS в Chrome и перехожу к шагу, на котором выполняется почтовый запрос, я вижу, что переменные данные содержат массив объектов со значениями (как показано выше).

Почему метод MVC контроллера CreatePanelist не видит эти значения?

Если у кого-то есть идея и он не возражает ее предложить, это было бы неплохо.

Заранее благодарим вас за помощь.

1 Ответ

1 голос
/ 10 июля 2020

Ваша проблема возникает из-за того, что вы дважды позвонили на JSON.stringify. Вы уже вводите его в строку при установке переменной data, не делайте этого второй раз в своем post.

...