Le problème avec routage ASP.NET 4.0 est que les Page.RouteData.Values ne contient pas les paramenters après #
caractère du lienASP.NET 4.0 + routage historique ajax + navigateur
System.Web.Routing.RouteTable.Routes.MapPageRoute("ProjectViewRoute1",
"project/{title}/{idProject}#{idDesign}", "~/ProjectView.aspx");
Comme je l'ai dit La raison pour laquelle je veux utiliser cette fonctionnalité est parce que j'utilise JavaScript et Ajax pour cacher du contenu et en charger un nouveau, ce qui dans les yeux d'un utilisateur est comme charger une page différente, et il doit être capable de copier coller l'URL et voir cette page plus tard.
La question est: comment obtenir le {idDesign}
de la RoutedData?
Si je vais utiliser le? caractère ma page sera rafraîchie et rechargera à partir du serveur. Lorsque je définis l'URL de JavaScript comme ceci: window.location = http://example.com//page/subpage#idDesign ma page ne sera pas rafraichie et je peux facilement charger la nouvelle page en utilisant ajax. Le problème est de récupérer sur le serveur la chaîne après # caractère. Je sais que cela peut être fait d'une manière ou d'une autre. Facebook le fait, ASP.NET avec ASP.NET Ajax et seo urls le fait aussi. –
À droite, Facebook le fait en ayant une URL-réécriture rapide qui remplace tout après le? avec tout après le # - ce que j'ai recommandé dans la deuxième partie de ma réponse. Je peux fournir la source si vous avez besoin. –
Je suis allé de l'avant et fourni la source pour vous, puisque je l'avais sur un autre projet. –