2009-04-13 10 views
2

J'ai créé une nouvelle route comme ce qui suit:ASP.NET MVC par défaut Paramètres

routes.MapRoute(
    "BlogYMD", 
    "blog/date/{year}/{month}/{day}", 
    new { controller = "Blog", action = "Date", year = "2009", month="01", day="01" }); 

La vue retourne simplement une concaténation de l'année, le mois et le jour. Cela fonctionne bien pour comme URL:

http://localhost/blog/date/2009/01/01

Cependant si je saisis cette URL:

http://localhost/blog/date/2009

j'attendre les valeurs par défaut pour le mois et le jour à passer à la méthode de la date. Cependant, ils ne le sont pas, tous les paramètres de la méthode passent à zéro.

Est-ce que quelque chose me manque?

+0

Comment sont-ils perçus comme nuls, vous devriez avoir les paramètres comme entiers, le système de liaison dans mvc prendra de les couler. – meandmycode

Répondre

2

Vous ne montrez pas le reste de vos itinéraires, mais je suppose que vous avez un autre itinéraire au-dessus de celui-ci dans votre global.asax.CS (par exemple, la route par défaut) qui correspond à la deuxième URL.

+0

Bravo pour la réponse. –

2

L'ordre dans lequel vous déclarez des itinéraires est important. Vous voulez que vos routes personnalisées soient déclarées avant la valeur par défaut.

Questions connexes