2013-09-22 81 views
0

我正在使用WebApi和屬性路由。如何使用WebApi和屬性路由在控制器上獲取默認路由?

我有一個客戶控制器,有一個方法來獲取該客戶的所有動物。此方法&路線工作很好。但是,我也想要一個只返回所有客戶列表的方法,而且我無法讓其工作。

這裏是我的控制器:

[RoutePrefix("api/customer")] 
    public class CustomerController : ApiController 
    { 
     [HttpGet("{customerId}/animals")] 
     public PagedHorse Get(int customerId) 
     { 
       Console.WriteLine("Get"); 
     } 

     [HttpGet("")] 
     public PagedCustomer List() 
     { 
       Console.WriteLine("List"); 
     } 
    } 

如果我改變列表路線是"{customerId}/List",而忽略傳入的參數,它的工作原理。我在做什麼這些路線錯了?我真的很想讓api/customer返回所有客戶的列表。

+0

這是一個很直接的應用場景。我自己嘗試過,無法重現你提到的問題。你看到什麼迴應? –

+0

我得到了404.但是我使用Hot Towel SPA,並且意識到它在路由方面做了一些事情,所以我要檢查一下,看看是否有一些干擾。 – taylonr

回答

0

似乎熱毛巾SPA項目類型和我的項目之間存在一定程度的干擾。我沒有從Hot Towel從頭開始,但將其添加到現有項目中,所以我認爲存在一些路由問題。

我刪除了HotTowel特定的配置文件(例如HotTowelRouteConfig),因爲在那裏完成的所有操作都已經在我的ASAX文件中完成了。

之後,一切正常。