我正在使用带有 MVC4 的角度。我想使用 $http.get() 从 javascript 调用 MVC 控制器方法。它需要一个网址(显然)。我希望这是一个相对路径,但我该怎么写呢?我的控制器位于 Controllers/Api/ExampleController 中。即使我将 javascript 文件移动到另一个位置,我也希望解析路径,这意味着我希望路径相对于应用程序根目录而不是 javascript 文件。我试过“~/Controllers/Api/ExampleControllerMethod”和“Controllers/Api/ExampleController/Method.
问问题
12008 次
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 回答