Incluindo valores de hash em rotas de URL da ASP.NET MVC

Eu preciso implementar o valor de hash, ou seja, o URL deve ser assim:

/ home / index / # create

Para isso, adicionamos uma rota:

routes.MapRoute( "Default", // Route name "{controller}/{action}/#{detail}", // URL with parameters new { controller = "Login", action = "LogIn", detail =""} // Parameter defaults ); 

Ao acessar /home/index/#create , ele está me redirecionando para a rota padrão.

Como isso pode ser feito?

Você não pode buscar o valor após o símbolo # no servidor simplesmente porque esse valor nunca é enviado para o servidor. Apenas o javascript do lado do cliente tem access a isso, portanto definir rotas com hash não faz muito sentido.

Como afirmado, não há como fazer isso usando o roteamento. A única solução possível é append o fragment # ao seu URL ao redirect as ações do controlador. Por exemplo.

 return Redirect(Url.Action("Index", "Home") + "#create"); 

Quando um navegador faz uma solicitação para um URL, ele não envia nada após um hash para o servidor. Essa rota pode permitir que você gere URLs de rota contendo o valor de hash, mas não há como fazer nada do lado do servidor quando o usuário navega para tal URL. É assim que a web funciona …