在POST调用中,参数不会从angular传递给Web API

时间:2016-05-29 07:05:28

标签: angularjs asp.net-web-api angular-ui-router asp.net-web-api2 asp.net-web-api-routing

下面是我的角度和Web APi代码。在post方法中,null被传递而不是印度   角度代码:

HWApp.controller('TestCtrl', function ($scope, $http) {
     $scope.SendData = function (Data)
      {
        $scope.whoo = Data;
        console.log(Data);

        $http({
         url: "api/call/firstCall",
         dataType: 'json',
         method: 'POST',
         data: "India",
          headers: {
          "Content-Type": "application/json"
          }
           }).success(function (response) {
            $scope.whoo = response;
            })
            .error(function (error) {
           alert(error);
            });
        }
      }
    );

Web Api控制器

  public class CallController : ApiController
    {
        [HttpGet]
        public string firstCallGet( )
        {
            return "Get";
        }


        [HttpPost]
        public string firstCall([FromBody] string a)
        {
            return a;
        }
    }

1 个答案:

答案 0 :(得分:0)

您的数据参数应该是JSON对象。

data :{country : "India" }

定义一个模型类以自动反序列化。

Public class CountryViewModel{ Public string Country{get; set;} }

Web Api控制器应如下

public class CallController : ApiController { [HttpPost] public string FirstCall( CountryViewModel in) { return in.Country; } }