2013-10-08 18 views
6

Nel mio servizio Angularjs ho questo codice:

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

E devo questo metodo nel mio controller 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 }); 
      } 

     } 

Ho inserito un punto di interruzione su return Json(new {success = true}); e viene generato, ma il mio ID di routine è per qualche motivo nullo, e i dati che invio utilizzando $ http.post di angular non lo sono.

Perché sta succedendo?

+0

Cosa c'è dentro la data' variabile '? E qual è l'intestazione di richiesta "Content-Type" inviata? Guarda la console di sviluppo del tuo browser Google Chrome per vedere la richiesta esatta che stai facendo. –

+0

Sì, è una variabile, ho anche provato a usare "sometext" invece di dati, e Content-Type è application/json; charset = utf-8 – hyperN

+0

E il codice di stato è HTTP/1.1 200 OK – hyperN

risposta

8

provare questo:

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

Che ha risolto il mio problema , tnx :) – hyperN

+2

e ... perché funziona? è solo perché routineId è lo stesso nome nel controller e nell'oggetto json? – ChiliYago

+1

@chiliYago corretto. Il tuo JSON verrà analizzato come l'oggetto C# che è un parametro (i) sul tuo controller API in modo che debbano corrispondere o ricevere un errore. – MGot90

Problemi correlati