Domanda

Sto usando angolare con MVC4.Vorrei chiamare un metodo del controller MVC da JavaScript utilizzando $ http.get ().Richiede un URL (ovviamente).Vorrei che questo sia un percorso relativo, ma come lo scrivo?Il mio controller è in controller / API / ExampleController.Vorrei che il percorso risolva anche se spostando il file JavaScript in un'altra posizione, il che significa che vorrei che il percorso sia relativo alla radice dell'applicazione rispetto al file JavaScript.Ho provato "~ / Controller / API / ESENTPLECONTROLLERMETHOD" e "Controller / API / ESAMECONTROLLER / Metodo.

È stato utile?

Soluzione 2

Grazie per le idee ma questo tipo di cosa è quello che stavo cercando:

Configura il webapiconfig per aggiungere un percorso come SO (dovrebbe averlo come predefinito):

config.Routes.MapHttpRoute(
            name: "ApiMethods",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );
.

Allora ora posso andare a $ http.get ('API / {Controller} / {Method}')

Altri suggerimenti

Il servizio $location fornisce informazioni dall'URL.Quindi, potresti costruire qualcosa per poi creare l'host e il porto dinamico:

var url = $location.host() + '/Controllers/Api/ExampleControllerMethod';
.

Dalla documentazione:

**url: http://www.example.com/base/path?a=b#h**
$location.protocol() = http
$location.host() = www.example.com
$location.port() = 80
$location.path() = /path
$location.search() = {"a":"b"}
$location.hash() = h
.

Che cosa ha funzionato per me doveva fornire l'URL come "/ controllerName / Azione" (invece di "Controllorname / Action")

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top