簡體   English   中英

Web API項目路由麻煩

[英]Web api project routing trouble

我有一個簡單的Web API項目(ASP.NET MVC)。 我需要將項目部署在IIS的子文件夾中。 例如,我有站點http://TestSite /,並且需要將項目部署到http://TestSite/MyProject/ 當我這樣做時,Web API路由停止工作。 因為我的ajax調用被路由到主站點http://TestSite/api/something/get

我試圖以以下方式更新地圖路由:

routeTemplate: "MyProject/api/{controller}/{id}",

但這並沒有影響我想要的。 我做錯了什么,在哪里可以了解ASP.NET MVC中Web API控制路由的一些做法?

這很簡單。 我不需要對路由做任何事情。 我只需要更改JavaScript中的url。

從:

$.getJSON('/api/Category', function (data) {

至:

$.getJSON('api/Category', function (data) {

只需刪除“ api”前的“ /”符號即可。 意識到。

順便說一句,關於調試ASP.NET Web API的不錯的文章- 使用Route Debugger調試ASP.NET Web API

編輯:忘記我之前寫的(而不是BTW部分)。 這行不通。 它適用於http://TestSite/MyProject/但不適用於http://TestSite/MyProject/MyController/Index 我過去的ASP.NET MVC項目遇到了此類問題。 我通過開始使用Url幫助程序解決了它,例如: @Url.Action("MyAction","MyController") 所以我需要Web Api之類的東西。 我找到了。 它是UrlHelper.HttpRouteUrl方法。 現在,我的代碼將以以下方式顯示:

$.getJSON( "@Url.HttpRouteUrl("DefaultApi",new {controller = "Category"})", function (data) {

哪里:

  • DefaultApi-我的默認記號的名稱。
  • 類別-我的api控制器的名稱。

該解決方案看起來並不優雅,但可以工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM