2014-10-10 70 views
0

GET/BusNumber/12/seatnumbers - 檢索seatnumbers的列表BusNumber#12
GET/BusNumber/12/seatnumbers/5 - 獲取座#5 BusNumber#12
POST/BusNumber/12/seatnumbers - 在BusNumber#12中創建新座位
PUT/BusNumber/12/seatnumbers/5 - ......................
PATCH/BusNumber/12/seatnumbers/5 - ..............................
DELETE/BusNumber/12/seatnumbers/5 - ............................如何創建這些URL

如何在ASP.Net Web中創建上述類型的URL API 2?

它必須通過路由器配置完成?如何在不影響默認路由器配置的情況下添加新路由器?我們如何在控制器方法內使用這些值?

謝謝 埃裏克

回答

0

在網頁API 2,你可以使用動作路由屬性和創造這樣的事情

[Route("Buses/{busNumber}/seatNumbers")] 
public IEnumerable<Bus> GetSeatNumbersByBusNumber(int busNumber) { ... } 

[Route("Buses/{busNumber}/seats/{seatNumber}")] 
public IEnumerable<Seat> GetSeatsByBusAndSeatNumber(int busNumber, int seatNumber) { ... } 

你可以做的PUT,POST類似,等

有關Web API 2中的路由屬性的更多信息是here.

要啓用路由屬性,您必須et up Web API Config像這樣

public static void Register(HttpConfiguration config) 
    { 
     // Attribute routing. 
     config.MapHttpAttributeRoutes(); 

     // Convention-based routing. 
     config.Routes.MapHttpRoute(
      name: "DefaultApi", 
      routeTemplate: "api/{controller}/{id}", 
      defaults: new { id = RouteParameter.Optional } 
     ); 
    } 
+0

我認爲這是答案。出於某種原因,我無法使屬性路由工作。現在可能是一個不同的問題。 – 2014-10-13 17:36:29