2010-10-10 3 views
0

J'utilise cette route personnalisée pour activer la pagination dans ma méthode d'index dans le contrôleur Home:ActionLinks ajouter mauvais paramètre lorsque des itinéraires personnalisés est utilisé

routes.MapRoute(_ 
    "HomePage", _ 
    "Home/Index/{page_num}", _ 
    New With {.controller = "Home", .action = "Index", .page_num = ""} _ 
    ) 

Mais lorsque je navigue vers une page par exemple la page 2, ActionLinks append le numéro de page à l'URL:

Html.ActionLink("Home", "Index", "Home") 

va rendre _http: // localhost/Accueil/Index/2 au lieu de _http: // localhost/Accueil/Index

Mais je l'ai remarqué cette méthode d'action s sans paramètres affiche correctement: _http: // localhost/Home/A propos de

Répondre

0

Html.ActionLink utilise le paramètre page_num du dictionnaire de valeurs de route précédent, sauf si vous modifiez certains paramètres à gauche de page_num.

Si vous aviez la route comme ci-dessous:

routes.MapRoute(_ 
    "HomePage", _ 
    "{controller}/{action}/{page_num}", _ 
    New With {.controller = "Home", .action = "Index", .page_num = ""} _ 
    ) 

Html.ActionLink ("Home", "environ") effacera variable page_num et vous obtiendrez l'url/home/à propos au lieu de/home/à propos de/2. Regardez ce Question connexes. Peut-être que cela aiderait.

+0

Je ne comprends pas comment cette route est différente de la précédente, mais cela rendra l'URL correcte pour les autres routes qui ont la pagination, par exemple: _http: // localhost/blog/index mais toujours Html.ActionLink ("Accueil", "Index", "Accueil") ajoutera le numéro de page en tant que paramètre. – SilverDove

Questions connexes