Inclure des valeurs de hachage dans les itinéraires d’URL ASP.NET MVC

Je dois implémenter une valeur de hachage, c’est-à-dire que l’URL doit ressembler à ceci:

/ home / index / # créer

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 la route 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 access à cela, donc définir des itinéraires avec hash 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 à append 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 demande une URL, il n’envoie rien après un hachage au serveur. Cette route peut vous permettre de générer des URL de route contenant la valeur de hachage, mais il n’ya aucun moyen de faire quelque chose côté serveur lorsque l’utilisateur navigue vers une telle URL. C’est comme ça que le web fonctionne …