我已按照以下方式设置我的控制器:
[HttpGet]
public ActionResult Contact()
{
ViewBag.Message = "Your contact page.";
return View();
}
[HttpPost]
public ActionResult Contact(string json)
{
return Json(new { received=json });
}
正在使用Angular.JS发送请求,如下所示:
$scope.update = function (message) {
$http({
url: '/Contact',
method: "POST",
data: message
}).success(function (data) {
//$scope.master = angular.copy(message);
$scope.master = data;
}).error(function (data) {
$scope.master = {message: "failed"}
});
};
但我现在回复的回应是:
{
"received": null
}
所以,我相信我的问题与我在控制器中定义的string json
参数有关。 接收JSON的正确方法是什么?
更新1:
我将$ http请求更新为:
$scope.update = function (message) {
$http({
url: '/Contact',
method: "POST",
data: {json:message}
}).success(function (data) {
//$scope.master = angular.copy(message);
$scope.master = data;
}).error(function (data) {
$scope.master = {message: "failed"}
});
};
但我仍然得到相同的结果。
答案 0 :(得分:3)
如下设置您的数据,否则MVC将期望参数名称应为id
而不是json
data: {json:JSON.stringify(message)}