2015-01-27 17 views
9

Sto provando a chiamare l'azione del controller Mvc dal controller Angularjs $ http.get(). Si prega di fornire qualche soluzione.Impossibile chiamare l'azione del controller Mvc dal controller AngularJs con i parametri

Azione Controller:

[HttpGet] 
public string CallMe(int number,string name) 
{ 
    return "Welcome " + name +" to Angular Js " + number + " times."; 
} 

angolare JS controller

app.controller("StoreController", ["$http", function ($http) {   
    $http.get("/Home/CallMe", { number: 4, name: "angular"  }).success(function (data) { 
     console.log(data); 
    }).error(function (error) {   
     console.log(error); 
    }); 
}]); 

Inoltre, Qualcuno potrebbe specificare il materiale relativo per l'apprendimento?

Grazie in anticipo.

+0

Si prega di aggiungere i dettagli di errore che si stanno ottenendo. –

+1

Materiale correlato per l'apprendimento: google.com – user3036342

+0

@ user3036342 Grazie .. Ma l'ho già cercato su google. è il mio secondo giorno con lo stesso problema. –

risposta

12

Si utilizza $http#get metodo.

get(url, [config]); 

Param Type  Details 
url  string Relative or absolute URL specifying the destination of the request 

config Object Optional configuration object 
(optional) 

per il passaggio di parametri angular.http fornisce un'opzione per esso params

$http({ 
    url: "/Home/CallMe", 
    method: "GET", 
    params: {number: 4, name: "angular"} 
}); 
+0

Grazie. Questo è quello che stavo cercando. C'è un altro modo per farlo oltre a # http # get? –

+1

@AjayVerma: prego. Sì, puoi anche usare il metodo 'POST'. Basta cambiare da metodo a post e da 'params' a' data' e il gioco è fatto. Non so 'C#' –

3

Si sta tentando di utilizzare il metodo get con i parametri post. get accetta solo un parametro URL e uno facoltativo di configurazione. Dai un'occhiata qui allo documentation.

tenta di aggiungere le vostre parametri all'URL:

app.controller("StoreController", ["$http", function ($http) {   
    $http.get("/Home/CallMe?number=4&name=angular").success(function (data) { 
     console.log(data); 
    }).error(function (error) {   
     console.log(error); 
    }); 
}]); 
+0

Ha funzionato. Ma ancora una volta sorge qualche domanda: 1. Cosa succede se voglio inviare più dati al controller? 2. Se è Post; di nuovo se è richiesto un singolo parametro in Mvc Controller (solo con nome stringa). Il controller Mvc viene chiamato con valore null. Come? Cosa è successo a [HttpGet]? per esempio. 'stringa pubblica CallMe (nome stringa) {}' –

+0

@AjayVerma 1) I dati multipli devono essere uguali o inseriti in una classe e utilizzati in una richiesta di posta. 2) la stringa causa in particolare qualche tipo di problema nei messaggi per qualche motivo. Puoi metterlo in una classe, o puoi provare a usare 'stringa pubblica CallMe ([FromBody] nome stringa)' se stai usando WebAPI, che a volte funziona –

+0

Grazie .. Ha funzionato anche .. –

Problemi correlati