2013-11-27 34 views
0

我目前正在.NET 4.5 MVC 4 Web應用程序中工作。當我輸入網址http://localhost:55302/api/這一切工作正常雖然在URL中沒有請求控制器,但控制器來自Url - c#.Net MVC 4

  routes.MapRoute(
      name: "Default", 
      url: "api/", 
      defaults: new { controller = "Response", action = "ReturnAllStations" } 
     ); 


     routes.MapRoute(
      name: "ID", 
      url: "api/{id}", 
      defaults: new { controller = "Response", action = "ReturnStuffA", id = UrlParameter.Optional } 
     ); 

現在: 我有以下途徑。但是當我輸入這樣一個URL:http://localhost:55302/api/SampleId1234我收到以下錯誤「找不到與名爲'Sample1234'的控制器匹配的類型。」

它爲什麼試圖獲得一個名爲Sample1234的控制器而不是defautlt,並使用sample1234作爲參數?

+0

你能改變規則的順序嗎? –

回答

1

您的默認路線應該最後。路由配置將從上到下查找配置,當它發現匹配時立即返回調用該操作。

在你的情況下總是調用第一個配置,因爲它匹配api/配置。

+0

我改變了順序,但現在我得到與api/{id}相同的錯誤,我得到的答覆是,只有api/ – SwissPrime

+0

找不到資源,使用此''http:// localhost:55302/api/SampleId1234'你想要調用什麼?是SampleId1234作爲'id'參數的'Response'控制器'ReturnStuffA'動作?如果是這種情況,您必須創建接受名爲id的字符串參數的ReturnStuffA操作。 – Saanch