J'ai besoin d'implémenter une valeur de hachage, c'est-à-dire que l'URL devrait ressembler à ceci:
/ home/index/# create
Pour cela ont ajouté un itinéraire:
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/#{detail}", // URL with parameters
new { controller = "Login", action = "LogIn", detail =""} // Parameter defaults
);
En accédant à /home/index/#create
, il me redirige vers l'itinéraire par défaut.
Comment cela peut-il être fait?
Vous ne pouvez pas récupérer la valeur après le #
symbole sur le serveur simplement parce que cette valeur n'est jamais envoyée au serveur. Seul javascript côté client a accès à cela, donc définir des itinéraires avec du hachage n'a pas beaucoup de sens.
Comme indiqué, il n'y a aucun moyen de le faire en utilisant le routage. La seule solution possible consiste à ajouter le fragment # à votre URL lors de la redirection dans les actions de votre contrôleur. Par exemple.
return Redirect(Url.Action("Index", "Home") + "#create");
Lorsqu'un navigateur fait une demande d'URL, il n'envoie rien après un hachage au serveur. Cette route peut vous permettre de générer acheminer les URL contenant la valeur de hachage, mais il n'y a aucun moyen de faire quoi que ce soit côté serveur lorsque l'utilisateur accède à une telle URL. C'est comme ça que le web fonctionne ...