我的服务器端(ASP.NET MVC)有此操作:
[HttpPost]
public JsonNetResult MyAction(long param1, string param2, string stringifiedJson)
{
...
}
使用JQuery,我可以轻松地使用此操作,如下所示:
$.ajax({
async: true,
type: 'POST',
url: '/bla/myAction',
data: {
"param1": 123,
"param2": "blah",
"stringifiedJson": JSON.stringify(someJSON),
},
success: function (data) {
...
}
});
但是对于angularjs,我还没有能够做到这一点。这就是我正在尝试的:
var httpRequest = $http({
method: "post",
url: "/bla/myAction",
params: {
param1: 123,
param2: "blah",
stringifiedJson: JSON.stringify(someJSON)
},
data: {
}
});
httpRequest.success(function(response) {
...
});
事实上,angularjs甚至不进行HTTP POST ..它正在执行OPTIONS请求,所以我找不到404。
问题是......如何使用参数进行发布请求?我知道我可以使用"数据"但是,如何让ASP.NET MVC将请求映射到每个方法参数?
答案 0 :(得分:0)
您发送的数据应与asp.net mvc方法参数具有相同的名称。 f.e 如果你有方法
public ActionResult doSomethingMethod(string name, string surname)
{
//code
}
来自angularjs的:
$http({
url: "your url",
method: "POST",
data: {
name: "Jon",
surname: "Doe"
}
})
还有更快的方式
var dataToSend = {name:"Jon",surname:"Doe"};
$http.post("your url",dataToSend);