2012-07-05 14 views
8

sto lottando per capire la configurazione del routing necessaria per sostenere il seguente scenario semplice:MVC 4 Web API - Percorsi per chiavi composte

http..service/api/objects/key1/key2 

mi sento come ho provate tutte.

Il problema più grande è che ogni volta sembra che abbia incrinato, trovo che

http..service/api/objects/key1 

viene instradato verso il senza parametri IQueryable Get.

risposta

4

Penso di averlo inchiodato.

routes.MapHttpRoute(
    name: IQueryableObjectsApiRouteName, 
    routeTemplate: "api/objects", 
    defaults: new { controller = "objects" } 
); 

routes.MapHttpRoute(
    name: ObjectsApiRouteName, 
    routeTemplate: "api/objects/{siteId}/{assetId}", 
    defaults: new { controller = "objects", siteId = "", assetId = "" } 
); 

Ho bisogno di impostare due percorsi espliciti per ciascun controller con tasti compositi. I valori predefiniti per le chiavi sono "", che rilevo nel controller e lancio il mio 404.

Funziona per me. Posso andare a pranzo ora.

+0

potresti specificare i parametri del metodo del controller? :) Mi piacerebbe sapere come appare con la chiave composita – Roylee

+1

Scusa Roylee, ho lasciato quel contratto/cliente. Mi aspetterei che sarebbe semplicemente 'public SomeModel Get (stringa siteId, stringa assetId)' comunque. –

+0

Va bene :) Avrei capito :) Sì hai ragione – Roylee

Problemi correlati