0
我在我的mvc应用程序中使用web api。使用jquey.get函数调用web api时遇到问题。考虑以下情形:Asp.net的web api路由问题?
我有2个控制器名称:
- HomeMVCController
- TestAPIController (使用MVC样式路由即,API/{控制器}/{行动}/{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
为什么浏览器添加首页/关于在url中为api和为什么不添加首页/索引当我在索引查看。上索引查看为什么api电话按预期工作,为什么不工作关于视图?
但正在使用服务器语法生成绝对URL,我怎么可以在js文件中使用此? – user1740381
我通常做的是我有一个Initialize方法,它是从Razor视图中调用的,并且包含所有需要javascript的url,例如:'Initialize({testApiGet:'@ Url.RouteUrl(...)',GetItems:' @ Url.Action(...)'})'。我会用一个例子来更新答案 – Rui