从Angularjs将Json数据发布到MVC控制器

时间:2018-06-22 12:43:03

标签: angularjs json asp.net-mvc-5

当我将JSON数据从AngularJS传递到MVC时。我遇到错误了。

  

Http请求配置url必须是字符串或$ sce受信任对象。收到:{“方法”:“ POST”,“ url”:“ Home / SavePDDetails”,“数据类型”:“ json”,“数据”:{“ PD”:{“名称”:“ qqq”,“地址” :“ www”}}}

MVC代码:

[HttpPost]
public JsonResult SavePDDetails(PDDetailsDTO PD)
{
    new PDDetailsDAL().SavePDDetails(PD);
    return Json(new { Success = true, Message = "Success" });
}

AngularJS代码

$scope.Click = function() {
  console.log('clicked');

  $http.post({
    method: 'POST',
    url: 'Home/SavePDDetails',
    datatype: "json",
    data: {
      PD: $scope.PD
    }
  }).success(function(response) {
      console.log('success');
      console.log(response);
  }).error(function(response) {
      console.log('error');
      console.log(response);
  });
}

2 个答案:

答案 0 :(得分:1)

如果将数据和url作为config对象的属性进行传递,请不要使用$http.post方法。只需使用$http

  ̶$̶h̶t̶t̶p̶.̶p̶o̶s̶t̶(̶{̶
  $http({
    method: 'POST',
    url: 'Home/SavePDDetails',
    ̶d̶a̶t̶a̶t̶y̶p̶e̶:̶ ̶"̶j̶s̶o̶n̶"̶,̶
    data: {
      PD: $scope.PD
    }
  })

$http Service不需要自动对数据进行分类。

答案 1 :(得分:-1)

在功能中尝试以下操作。

  

使用JSON.stringify()包装您的json

var parameter = JSON.stringify({PD: $scope.PD});

$http.post('Home/SavePDDetails', parameter).
success(function(data, status, headers, config) {
    // this callback will be called asynchronously
    // when the response is available
    console.log(data);
}).
error(function(data, status, headers, config) {
    // called asynchronously if an error occurs
    // or server returns response with an error status.
});