使用Angularjs

时间:2017-09-28 15:24:15

标签: angularjs rest

我正在尝试使用REST API向数据库添加新记录。 DELETE和GET方法工作正常,但我无法弄清楚POST方法有什么问题。

我的API控制器:

[HttpPost]      // POST: api/Contacts    //to add image as param?
public void InsertNewContact([FromBody]Contact Contact)
{
    SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["MyConStr"].ConnectionString);
    SqlCommand cmd = new SqlCommand(@"INSERT INTO Contacts(Name,Phone,Mail,City,Address) VALUES(@Name, @Phone,@Mail,@City,@Address)", con);
    SqlParameter Name = new SqlParameter("@Name", Contact.Name);
    cmd.Parameters.Add(Name);
    SqlParameter Phone = new SqlParameter("@Phone", Contact.Phone);
    cmd.Parameters.Add(Phone);
    SqlParameter Mail = new SqlParameter("@Mail", Contact.Mail);
    cmd.Parameters.Add(Mail);
    SqlParameter City = new SqlParameter("@City", Contact.City);
    cmd.Parameters.Add(City);
    SqlParameter Address = new SqlParameter("@Address", Contact.Address);
    cmd.Parameters.Add(Address);

    try
    {
        con.Open();
        cmd.ExecuteNonQuery();
    }
    catch (Exception e)
    {

    }
    finally
    {
        con.Close();
    }

}

HTML中的HTTP POST请求:

$scope.add_to_db = function () 
{                                
    //insert contact to db
    $http.post(url + "/api/Contacts",
        JSON.stringify({ Name: $scope.contactName, Phone: $scope.contactPhone, Mail: $scope.contactMail, City: $scope.contactCity, Address: $scope.contactAddress}))
        .then(function (res) {
            $state.go("contacts");
    }, function (err) { alert(err); });
}

响应返回到成功函数,但数据库中没有任何更改。这可能是什么问题?

1 个答案:

答案 0 :(得分:0)

Catch Block为空以了解错误,通常我会经历这些情况,并确保在代码中实现以下内容以追踪失败原因:

  

1)API控制器中的@RequestBody应该接受联系模型   数据

     

2)检查以角度创建的JSON对象是否与联系模型/ POJO同步。

     

3)使用 POSTMAN 最初只调试REST API,这可以帮助您追踪失败。