2013-02-14 51 views
2

這只是一個爲什麼問題,因爲它可能是誤概念:(更改{} API爲{#} ASP.net的Web API

以下是在ASP.net網絡API默認Web API配置項目

public static class WebApiConfig 
{ 
    public static void Register(HttpConfiguration config) 
    { 
     config.Routes.MapHttpRoute(
      name: "DefaultApi", 
      routeTemplate: "api/{controller}/{id}", 
      defaults: new { id = RouteParameter.Optional } 
     ); 
    } 
} 

我試圖改變

API/{控制器}/{ID}

/{控制器}/{ID}

工作,遠大的部分是,它是被忽略(NO 404),如果我'm路由到我的首頁頁面,但其他消費完美工作,如

-/{控制器}/{ID}

似乎是一個編碼問題錯過概念的一部分,任何幫助嗎?

回答

1

#是錯誤的選擇。這部分只是一個客戶端上相關的,將允許滾動元素的名稱哈希

檢查這個答案後,等於部分: https://stackoverflow.com/a/967659/1679310

提取物:

...我恐怕不會,因爲散列(包含#的字符串)永遠不會被 傳遞給服務器,所以它完全是 瀏覽器的行爲屬性。然而,$ _SERVER ['REQUEST_URI']變量將包含其餘的 。

所以,雖然部分之後(含)#從不發送到服務器,你不能用它作爲你的路由

的一部分
1

「#」符號被瀏覽器解釋爲書籤,並且通常不會發送到服務器。我建議運行一個工具,如Fiddler或瀏覽器的開發工具(如IE中的F12工具),並查看實際發送到服務器的請求。