ASP.NET MVC: le routage d'url vs querystring
J'ai une page routé comme /Comments/Search/3
où je rechercher et d'afficher tous les commentaires de la fil de "3".
Je vais ajouter une fonction de tri (date, auteur, etc). Quelle est la meilleure façon de le gérer? /Comments/Search/3/Sort/Author
ou /Comments/Search/3?sort=author
?
Comment puis-je gérer automatiquement la chaîne de requête de tri=auteur en tant que paramètre dans MVC?
Grâce
Vous devez vous connecter pour publier un commentaire.
Que je préfère: /Commentaires/Recherche/3?tri=auteur. La chaîne de requête est un bon endroit pour passer dans la programmation des paramètres, en particulier si le paramètre (comme dans ce cas) n'est pas important pour les fins de SEO. Si le paramètre a quelques de sens sémantique comme un terme de recherche, la première URL serait mieux.
Dans une méthode de contrôleur, vous pouvez utiliser quelque chose comme ceci:
ASP.NET MVC automatiquement le fil jusqu'querystring des valeurs aux paramètres de votre méthode.
Utiliser le parcours suivant
/Commentaires/Recherche/3?tri=l'auteur d'appel de Recherche(3, "auteur")
/Commentaires/Recherche/3 appel de Recherche(3, null)
Gardez à l'esprit que l'id est obligatoire pour cette url ne fonctionne pas:
/Commentaires/Recherche
int? id
au lieu deint id
si vous voulez qu'il soit facultatif et/Comments/Search
de montrer de recherche par défaut de l'INTERFACE utilisateur avec vide d'entrée de texte.ASP.NET MVC va gérer automatiquement dans la chaîne de requête cas. Il suffit d'ajouter un
string sort
paramètre à votre action.Ce qui est mieux? Personnellement, j'utilise le chemin d'accès pour le contrôle de la contenu s'affiche et la chaîne de recherche pour le contrôle de la présentation (mode d'affichage, mise en forme, ...). Donc, pour le tri, j'irais avec la méthode querystring. Mais je ne pense pas qu'il y a un désavantage technique dans l'une ou l'autre approche.
Votre meilleur pari est d'ajouter une règle de routage pour le manipuler. Il y a une pratique de l'article sur le sujet ici:
http://aspalliance.com/1525_ASPNET_MVC_Framework_Part_2_URL_Routing.2
Alors votre URL de lecture /Commentaires/Recherche/3/Tri/Auteur