ASP.NET MVC - Cartographie plus d'un paramètre de chaîne de requête à un joli url
Je suis un peu coincé sur le design de mon seo friendly urls pour mvc....Prenez par exemple l'url suivante:
http://myapp/venues/resturants.aspx?location=central&orderBy=top-rated
Avec mon application mvc, j'ai mappé comme suit:
http://myapp/venues/list/resturants/central/top-rated
{controller}/{action}/{catégorie}/{location}/{commande}
Maintenant, le seul problème, c'est que l'emplacement et l'ordre sont en option...donc il devrait être possible de présenter une requête du type: http://myapp/venues/list/resturants/top-rated . Cela s'avère être un problème lors de la demande frappe le contrôleur de l'action, de l'emplacement de paramètre a ramassé "les mieux notés", naturellement.
Des suggestions? Je suis d'envisager d'en utiliser explicite querystrings pour gérer plus d'un paramètre, mais c'est vraiment ma dernière option que je ne veux pas sacrifier SEO trop.
Quelqu'un a eles de courir dans ces dilemmes? Et comment avez-vous gérer cela?
Merci d'avance!
OriginalL'auteur | 2009-01-06
Vous devez vous connecter pour publier un commentaire.
En supposant que les valeurs autorisées pour l'emplacement et l'ordre sont uniques (c'est à dire quand ils viennent, vous pouvez leur dire à part, ou bien si elles ne fournissent qu'un, comment allez-vous savoir si c'est un emplacement ou une commande?), ensuite, vous pouvez simplement prendre deux paramètres et de travailler sur ce qu'ils sont dans le contrôleur.
Route:
{controller}/{action}/{param1}/{param2}
Action de contrôleur:
Pas particulièrement élégant, mais ne laissez que vous avez les Url que vous souhaitez.
OriginalL'auteur Giraffe
Cliquez sur votre lien vers le profil et de regarder les Url pour les Stats, Récente, Réponse, etc.
Exemples:
avec pas de tri par défaut de statistiques
Option paramètres devraient être les paramètres de la requête
OriginalL'auteur Todd Smith
Vous aurez toujours ce problème si vous avez plusieurs paramètres facultatifs. Soit faire un ou deux d'entre eux non optionnel (et placée plus haut dans la chaîne de requête de l'option) ou utilisez le paramètre querystring notation.
OriginalL'auteur GalacticCowboy
ok les gars, juste de poster une solution que j'ai joué jusqu'à présent.
J'ai mis en place mes itinéraires à l'aide de contraintes comme suit:
L'idée est que si la validation échoue, il va aller à la prochaine route dans la liste...finalement frapper la valeur par défaut.
Besoins des tests un peu plus mais a bien fonctionné jusqu'à maintenant...
OriginalL'auteur
Pourquoi ne pas créer une propriété dans la page pour chaque paramètre querystring?
De cette façon, vous pouvez gérer n'importe quelle manière vous choisissez avec seulement quelques lignes de code...
OriginalL'auteur Sergio