Asp.Net Web API 不会从 angular 接收帖子数据
本文关键字:数据 angular Web Net API Asp | 更新日期: 2023-09-27 18:31:26
请帮帮我。
我想使用$http方法将字符串传递给 WebApi 控制器的 Post 方法。但是我在控制器端得到空字符串。
这是我的客户端代码。
$http({
url: 'http://localhost/MyWebApi/api/home',
method: 'POST',
headers: { 'Content-Type': 'application/json' },
data: JSON.stringify({name: $scope.newProduct})
}).success(function (data, status, headers, config) {
$scope.products = data;
$scope.newProduct = "";
console.log(data);
})
.error(function (data, status, headers, config) {
console.log(data);
});
这是我的WebApi控制器
[HttpPost]
public IHttpActionResult Post([FromBody]string newProduct)
{
var db = new MVCEntities();
db.Products.Add(new Product() { ProductName = newProduct });
db.SaveChanges();
var products = db.Products.ToList();
return Ok();
}
谢谢
你得到空可能是因为你的 POST 请求与你的方法签名不匹配: 试试这个:
data: { newProduct: $scope.newProduct }
如果仍然不起作用,请尝试从控制器中删除 [FromBody]
属性:
public IHttpActionResult Post(string newProduct)
您的 JSON 与方法签名不匹配。不需要 JSON,您可以将其作为普通字符串传入
data: $scope.newProduct
或者使用与您的 JSON 匹配的自定义对象,并将其用作方法的参数,例如
[DataContract]
public class NewProductData{
[DataMember(Name="name")]
public string Name {get;set;}
}
新方法签名
public IHttpActionResult Post([FromBody]NewProductData newProduct)