4

MVC4で角度を使用しています。$http.get() を使用して JavaScript から MVC コントローラー メソッドを呼び出したいと思います。URLが必要です(明らかに)。これを相対パスにしたいのですが、どのように書けばよいでしょうか?私のコントローラーは Controllers/Api/ExampleController にあります。javascript ファイルを別の場所に移動した場合でも、パスを解決したいと思います。つまり、パスを javascript ファイルではなく、アプリケーション ルートからの相対パスにしたいと考えています。「~/Controllers/Api/ExampleControllerMethod」と「Controllers/Api/ExampleController/Method.

4

3 に答える 3

3

この$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
于 2014-01-09T12:16:56.913 に答える
1

アイデアをありがとう、しかしこの種のものは私が探していたものです:

次のようにルートを追加するように WebApiConfig を構成します (デフォルトである必要があります)。

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

だから今私は行くことができます $http.get('api/{controller}/{method}')

于 2014-01-09T15:51:16.973 に答える
1

私にとってうまくいったのは、URLを「/ ControllerName / Action」(「ControllerName / Action」ではなく)として提供することでした

于 2016-01-03T03:57:58.453 に答える