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