我使用的是用mvc4的角度。我想使用$ http.get()从JavaScript调用MVC控制器方法。它需要一个URL(显然)。我希望这是一个相对的路径,但我该如何写下这一点?我的控制器处于控制器/ API / ExampleController。即使我将JavaScript文件移动到另一个位置,我也希望解析的路径,这意味着我希望与JavaScript文件相对的应用程序root。我已经尝试了“〜/ controllers / api / mequplecontrollermethod”和“控制器/ api / mequplecontroller /方法。

有帮助吗?

解决方案 2

谢谢你的想法,但这种事情是我在寻找的东西:

配置webapiconfig以添加这样的路由(应将其默认为默认值):

config.Routes.MapHttpRoute(
            name: "ApiMethods",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );
. 所以现在我可以去$ http.get('api / {controller} / {method}')

其他提示

$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提供为“/ contractername / action”(而不是“controllername / action”)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top