ASP.NET MVC de routage avec un paramètre obligatoire et un paramètre facultatif?

J'ai travaillé sur un grand MVC de l'application au cours du dernier mois ou deux, mais c'est la première fois que j'ai jamais nécessaire de définir un itinéraire personnalisé gestionnaire, et je suis en cours d'exécution dans certains problèmes. Fondamentalement, j'ai deux paramètres à passer. Le premier est requis, et le second est facultatif.

Je suis après cette réponse ici.

Voici mon itinéraire personnalisé:

routes.MapRoute(
    "MyRoute",
    "{controller}/{action}/{param1}/{param2}",
    new { 
        controller = "MyController", 
        action = "MyAction", 
        param1 = "", 
        param2 = "" //I have also tried "UrlParameter.Optional" here.
    }
);

Et mon action de la signature de la méthode:

public ActionResult MyAction(string param1, string param2)

Si j'essaie de l'URL http://[myserver]/MyController/MyAction/Test1/Test2 puis il travaille comme je l'ai prévu, avec param1 = "Test1" et param2 = "Test2"

Si j'essaie de l'URL http://[myserver]/MyController/MyAction/Test1 puis les deux paramètres sont nuls.

Espérons que quelqu'un peut me dire ce que je fais mal ici, parce que je suis perdu.

Bonjour de l'avenir - essayez attribut de routage maintenant de FAÇON plus facile et moins sujette aux erreurs.

OriginalL'auteur jebar8 | 2012-10-05