Javascript Angularjs$http.post,asp.net mvc控制器获取空值
在我的Angularjs服务中,我有以下代码:Javascript Angularjs$http.post,asp.net mvc控制器获取空值,javascript,asp.net-mvc,asp.net-mvc-4,angularjs,Javascript,Asp.net Mvc,Asp.net Mvc 4,Angularjs,在我的Angularjs服务中,我有以下代码: $http.post("/EditWorkout/GetId", data).error(function (responseData) { console.log("Error !" + responseData); }); 我的ASP.net控制器中有此方法: [System.Web.Http.HttpPost] public JsonResult GetId(string
$http.post("/EditWorkout/GetId", data).error(function (responseData) {
console.log("Error !" + responseData);
});
我的ASP.net控制器中有此方法:
[System.Web.Http.HttpPost]
public JsonResult GetId(string routineId)
{
try
{
string x = routineId;
return Json(new {success = true});
}
catch (Exception ex)
{
return Json(new { success = false, errorMessage = ex.Message });
}
}
我在returnjson(new{success=true})上设置了一个断点
会被触发,但出于某种原因,我的routineId为null,而我使用angular的$http.post发送的数据则不是
为什么会发生这种情况?试试这个:
$http.post("/EditWorkout/GetId", { routineId : data}).error(function (responseData) {
console.log("Error !" + responseData);
});
数据
变量中有什么?发送的内容类型请求头是什么?查看您的Google Chrome浏览器的开发控制台,以查看发出的确切请求。是的,这是一个变量,我甚至尝试使用“sometext”代替数据,内容类型为application/json;charset=utf-8,状态代码为HTTP/1.1,并且。。。为什么这样做有效?只是因为routineId在控制器和json对象中是相同的名称吗?@chiliYago这是正确的。JSON将被解析为C#对象,该对象是API控制器上的参数,因此它们必须匹配,否则将出错。