Javascript AngularJS$http/.NET Web API-获取400(错误请求)或NULL POST Action方法参数
下面是对我的问题的简要描述(我可以这么说),以及所有相关代码。我希望这篇文章的措辞会比我之前请求的帮助更清晰一些 我有一个.NETWebAPI和一个AngularJS前端。我有一个非常简单的POST方法,它接受“信封”类型的参数,如下所示:Javascript AngularJS$http/.NET Web API-获取400(错误请求)或NULL POST Action方法参数,javascript,asp.net,angularjs,Javascript,Asp.net,Angularjs,下面是对我的问题的简要描述(我可以这么说),以及所有相关代码。我希望这篇文章的措辞会比我之前请求的帮助更清晰一些 我有一个.NETWebAPI和一个AngularJS前端。我有一个非常简单的POST方法,它接受“信封”类型的参数,如下所示: public class Envelope { public int listingId { get; set; } public string Description { get; set; } public override s
public class Envelope {
public int listingId { get; set; }
public string Description { get; set; }
public override string ToString() {
return listingId.ToString() + "; " + Description;
}
}
API上的实际POST方法如下所示:
[EnableCors(origins: "http://simpleapiearl.azurewebsites.net", headers: "*", methods: "*")]
public class EnvelopesController : ApiController {
// POST: api/Envelopes
public string Post(Envelope env) {
return "rval: " + env.ToString() + " (and my addition to env)";
}
}
我的前端AngularJS$http帖子如下所示:
$scope.testPOST = function () {
var env = {
listingId:1234,
Description:"some desc"
};
$http({
method: 'POST',
url: 'http://simpleApiEarl.azurewebsites.net/api/envelopes',
data: JSON.stringify(env),
headers: {
'Content-Type': 'application/json'
}
}).
success(function (data, status, headers, config) {
$scope.postStatus = 'success: ' + data;
}).
error(function (data, status, headers, config) {
$scope.postStatus = 'error: ' + status;
});
}
以下是我的问题(编号以便于参考):
非常感谢您提供的任何帮助。我发现了一篇很棒的博客文章,为我的问题提供了解决方案:
谢谢大家考虑我的要求 'Content-Type':'application/x-www-form-urlencoded' 这将起作用。这是控制器:
public async Task<HttpResponseMessage> GetData(int pageNo, int pageSize)
{
HttpResponseMessage response = null;
int totalPage, totalRecord;
totalRecord = db.Employees.Count();
totalPage = (totalRecord / pageSize) + ((totalRecord % pageSize) > 0 ? 1 : 0);
var record = (from a in db.Employees
orderby a.id
select a).Skip((pageNo - 1) * pageSize).Take(pageSize).ToList();
DataWithPaging data = new DataWithPaging
{
PageNo = pageNo,
PageSize = pageSize,
TotalPage = totalPage,
TotalRecord = totalRecord,
EmployeeData = record
};
response = Request.CreateResponse(HttpStatusCode.OK, data);
return await Task.FromResult(response);
}
public异步任务GetData(int pageNo,int pageSize)
{
HttpResponseMessage响应=null;
int totalPage,totalRecord;
totalRecord=db.Employees.Count();
totalPage=(totalRecord/pageSize)+(totalRecord%pageSize)>0?1:0);
var记录=(来自db.Employees中的a)
orderby a.id
选择a).Skip((pageNo-1)*pageSize.Take(pageSize).ToList();
DataWithPaging数据=新的DataWithPaging数据
{
PageNo=PageNo,
PageSize=PageSize,
TotalPage=TotalPage,
TotalRecord=TotalRecord,
EmployeeData=记录
};
response=Request.CreateResponse(HttpStatusCode.OK,数据);
返回等待任务。FromResult(响应);
}
您应该有一个名为:DataWithPaging的类
public class DataWithPaging
{
public int PageNo { get; set; }
public int PageSize { get; set; }
public int TotalPage { get; set; }
public int TotalRecord { get; set; }
public List<Employee> Employees { get; set; }
}
带有分页的公共类数据
{
公共int PageNo{get;set;}
公共int PageSize{get;set;}
公共整数页{get;set;}
公共整数TotalRecord{get;set;}
公共列表雇员{get;set;}
}