Paramètres Web.API MapHttpRoute

Je vais avoir des problèmes avec mon site Web.API de routage. J'ai le texte suivant deux voies:

config.Routes.MapHttpRoute(
    name: "MethodOne",
    routeTemplate: "api/{controller}/{action}/{id}/{type}",
    defaults: new { id = RouteParameter.Optional, type = RouteParameter.Optional }
);

config.Routes.MapHttpRoute(
    name: "MethodTwo",
    routeTemplate: "api/{controller}/{action}/{directory}/{report}",
    defaults: new { directory = RouteParameter.Optional, report = RouteParameter.Optional }
);

Et dans mon contrôleur de ces deux méthodes:

[HttpGet]
[ActionName("methodone")]
public string MethodOne(string id, string type)
{
    return string.Empty;
}

[HttpGet]
[ActionName("methodtwo")]
public string MethodTwo(string directory, string report)
{
    return string.Empty;
}

Ces deux apparemment ne peut pas vivre côte à côte. Si je commente la MethodOne route dans WebApiConfig, le MethodTwo itinéraire fonctionne. Commentant MethodTwo itinéraire permet MethodOne pour travailler. En laissant les deux sans commentaire, MethodOne fonctionne, mais pas MethodTwo.

J'espérais utiliser un itinéraire pour les deux de ces choses, alors il semble qu'ils devraient avoir les mêmes noms de paramètres. Qui écrit les méthodes génériques de noms de paramètre? Mauvais. Je ne veux vraiment pas mes méthodes pour avoir les mêmes noms de paramètres (comme p1, p2, p3), j'ai donc pensé que je pourrais créer un itinéraire pour la nouvelle méthode. Mais même cela ne semble pas fonctionner.

Je l'ai vraiment manquer le WebGet(UriTemplate="") de WCF rest.

J'ai un contrôleur qui a de nombreuses méthodes, certains avec 1, 2, 3 ou même plus de paramètres. Je ne peux pas croire que je ne peux utiliser significative des noms de paramètre avec la MapHttpRoute approche.

Je pourrais commenter ce genre de choses complètement et utiliser WebGet() ... mais avant que je suis arrivé, j'ai voulu voir si je suis absent quelque chose.

source d'informationauteur Nicros