Вопрос

Я использую angular с MVC4.Я хотел бы вызвать метод контроллера MVC из javascript, используя $http.get().Для этого требуется URL (очевидно).Я бы хотел, чтобы это был относительный путь, но как мне это написать?Мой контроллер находится в Controllers/Api/ExampleController.Я хотел бы, чтобы путь был разрешен, даже если я переместил файл javascript в другое место, то есть я хотел бы, чтобы путь был относительным к корню приложения, а не к файлу javascript.Я пробовал «~/Controllers/Api/ExampleControllerMethod» и «Controllers/Api/ExampleController/Method.

Это было полезно?

Решение 2

Спасибо за идеи, но эта вещь - это то, что я искал:

Настройте webapiconfig, чтобы добавить маршрут, как так (должен иметь его по умолчанию):

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

Так что теперь я могу пойти $ http.get ('API / {контроллер} / {метод}')

Другие советы

А $location сервис предоставляет информацию по URL.Итак, вы можете создать что-то, чтобы затем сделать хост и порт динамическими:

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

Из документации:

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

Что для меня сработало, было предоставление URL-адреса как «/ Controlername / Action» (вместо «контрольного управления / действия»)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top