Pregunta

Estoy usando angular con MVC4.Me gustaría llamar a un método de controlador MVC desde JavaScript usando $ http.get ().Requiere una URL (obviamente).Me gustaría que esto sea un camino relativo, pero ¿cómo escribo eso?Mi controlador está en controladores / API / Examplecontroller.Me gustaría que el camino resolviera incluso si muevo el archivo de JavaScript a otra ubicación, lo que significa que me gustaría que la ruta sea relativa a la raíz de la aplicación en lugar del archivo JavaScript.He intentado "~ / controladores / API / EXAMPLECON CONTROLERTETHOD" y "Controladores / API / EXAMPLECONTROLER / MÉTODO.

¿Fue útil?

Solución 2

Gracias por las ideas, pero este tipo de cosas es lo que estaba buscando:

Configure el WebAPICONFIG para agregar una ruta como (debe tenerla como predeterminada):

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

Así que ahora puedo ir $ http.get ('api / {controlter} / {método}')

Otros consejos

El servicio $location proporciona información de la URL.Por lo tanto, podría construir algo para luego hacer que el host y el puerto dinámico:

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

de la documentación:

**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

Lo que funcionó fue proporcionar la URL como "/ controlerName / acción" (en lugar de "ControllerName / Acción")

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top