Attribut de routage avec des paramètres optionnels dans ASP.NET Web API

Je suis en train d'utiliser l'API Web 2 attribut de routage pour définir une API personnalisé. J'ai obtenu mon parcours de travail tels que ma fonction est appelée, mais pour certaines raisons, j'ai besoin de passer mon premier paramètre pour que tout fonctionne correctement. Voici l'Url que je veux soutenir:

http://mysite/api/servicename/parameter1
http://mysite/api/servicename/parameter1?parameter2=value2
http://mysite/api/servicename/parameter1?parameter2=value2&parameter3=value3
http://mysite/api/servicename/parameter1?parameter2=value2&parameter3=value3&p4=v4

Les 3 derniers Url de travail, mais le premier dit: "Aucune action n'a été trouvé sur le contrôleur le contrôleur de nom" qui correspond à la demande."

Mon contrôleur ressemble à ceci:

public class MyServiceController : ApiController
{
    [Route("api/servicename/{parameter1}")]
    [HttpGet]
    public async Task<ReturnType> Get(string parameter1, DateTime? parameter2, string parameter3 = "", string p4 = "")
    {
        //process
    }
}
InformationsquelleAutor sohum | 2014-03-13