我有一个简单的Post方法
[ResponseType(typeof(Conversation))]
[HttpPost]
[Route("foo/bar/Function/")]
public Conversation Function(string title, IEnumerable<Participants> participants)
{
}
我想将一些标题和参与者从我的应用程序传递给服务。
这就是我的尝试:
var createNewConversation = function(title, participants) {
var deferred = $q.defer();
var data = {
title: title,
participants: participants
};
$http.post("/foo/bar/Function", data, { headers: { 'Content-Type': "application/json" }, withCredentials: true }).success(function(response) {
deferred.resolve(response);
}).error(function(err, status) {
deferred.reject(err);
});
return deferred.promise;
};
但请求永远不会到达服务(也就是说没有达到断点)。
知道我做错了吗?
答案 0 :(得分:2)
你正在发送身体内的两个参数,而web api无法管理这个,你有两个选择:
<强> 1。在URL中发送标题并参与正文:
[ResponseType(typeof(Conversation))]
[HttpPost]
[Route("foo/bar/Function/{title}")]
public Conversation Function(string title, IEnumerable<Participants> participants)
{...}
// JS
var data = {
participants: participants
};
$http.post("/foo/bar/Function/title", data, ......
<强> 2。发送全身,改变行动:
[ResponseType(typeof(Conversation))]
[HttpPost]
[Route("foo/bar/Function/{title}")]
public Conversation Function([FromBody] MyClassThatHaveTitleAndParticipants data)
{...}
MyClassThatHaveTitleAndParticipants类必须具有两个属性,标题和参与者。 // JS
var data = {
title: title,
participants: participants
};
$http.post("/foo/bar/Function", data, ...