2013-10-08 7 views
6

В моей 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 }); 
      } 

     } 

Я поставил точку останова на return Json(new {success = true});, и он уволен, но моя программа Id по какой-то причине является нулевой, а данные, которые я отправляю с использованием углового $ http.post, нет.

Почему это происходит?

+0

Что внутри 'data' переменной? И какой отправленный заголовок запроса Content-Type отправляется? Посмотрите на консоль разработки своего браузера Google Chrome, чтобы увидеть точный запрос. –

+0

Да, это переменная, я даже пытался использовать «sometext» вместо данных, а Content-Type - application/json; charset = utf-8 – hyperN

+0

И код состояния HTTP/1.1 200 OK – hyperN

ответ

8

попробовать это:

$http.post("/EditWorkout/GetId", { routineId : data}).error(function (responseData) { 
      console.log("Error !" + responseData); 
     }); 
+0

Это решило мою проблему , tnx :) – hyperN

+2

и ... почему это работает? это просто потому, что programId имеет одно и то же имя в контроллере и json-объекте? – ChiliYago

+1

@chiliYago это правильно. Ваш JSON будет анализироваться как объект C#, являющийся параметром (-ами) на вашем контроллере API, чтобы они соответствовали или получили ошибку. – MGot90

Смежные вопросы