Routing basierend auf dem Namen des Abfragezeichenfolgenparameters

Ich versuche, konfigurieren Sie das routing in meinem MVC4 WebAPI-Projekt.

Ich möchte in der Lage sein, um die Suche für Produkte, die basierend auf Ihren Namen oder Ihre Art so:

/api/products?name=WidgetX - gibt alle genannten Produkte WidgetX
/api/products?type=gadget - gibt alle Produkte von Typ gadget

Die Routen sind so konfiguriert:

config.Routes.MapHttpRoute(
    name: "Get by name",
    routeTemplate: "api/products/{name}",
    defaults: new { controller = "ProductSearchApi", action = "GetProductsByName", name = string.Empty }
);

config.Routes.MapHttpRoute(
    name: "Get by type",
    routeTemplate: "api/products/{type}",
    defaults: new { controller = "ProductSearchApi", action = "GetProductsByType", type = string.Empty }
);

Das problem ist, dass der name der query-string-parameter zu sein scheint, ignoriert, so dass der erste Weg ist immer der, der verwendet wird, unabhängig davon, ob der name der query-string-parameter.
Wie kann ich ändern, meinen Weg zu bekommen es richtig?

InformationsquelleAutor der Frage rickythefox | 2012-09-27

Schreibe einen Kommentar