Javascript Angularjs$http.post,asp.net mvc控制器获取空值

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

在我的Angularjs服务中,我有以下代码:

$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控制器上的参数,因此它们必须匹配,否则将出错。