【发布时间】:2014-02-17 10:05:14
【问题描述】:
我在我的 mvc 应用程序中使用 web api。使用 jquey.get 函数调用 web api 时出现问题。考虑以下场景:
我有 2 个控制器名称:
- HomeMVC控制器
- TestAPIController (使用 mvc 样式路由,即 api/{controller}/{action}/{id})
HomeMVC 控制器包含 2 个动作
- 索引
- 关于
TestAPI 控制器包含 1 个操作
- 获取
当我在 HomeMVC 控制器的索引视图上时,即
http://localhost:1025/Home
当我从浏览器调用 $.get("api/TestAPI/Get") 时,它会返回预期的 json 响应。
但是当我在关于 HomeMVC 控制器的视图时,即
http://localhost:1025/Home/About
当我从浏览器调用$.get("api/TestAPI/Get") 时,它返回错误,找不到资源,它试图定位的资源是:
http://localhost:1025/Home/About/api/TestAPI/Get
而不是
http://localhost:1025/api/TestAPI/Get
为什么浏览器在 api 的 url 中添加 Home/About 以及为什么当我在 Index 视图时没有添加 Home/Index .在 Index 视图上为什么 api 调用按预期工作,为什么在 About 视图上不工作??
【问题讨论】:
标签: c# jquery asp.net-mvc asp.net-web-api