Posso fazer ASP.NET MVC Html.RouteLink () retornar uma url para o meu home page sem um ID?
-
20-08-2019 - |
Pergunta
Eu tenho uma única rota em minha página Global.asax.vb
assim ...
Shared Sub RegisterRoutes(ByVal routes As RouteCollection) routes.IgnoreRoute("{resource}.axd/{*pathInfo}") routes.MapRoute( _ "IdOnly", _ "{id}", _ New With {.controller = "Page", _ .action = "Details", _ .id = "7"} _ ) End Sub
Isso id
é para minha home page. É exibido quando alguém navega para o meu: http://example.com/
Mas, isso também funciona: http://example.com/7
Eu gostaria de não ter ligações em qualquer lugar no meu site para o endereço com id
de 7. Mas, a função Html.RouteLink()
gera os.
Para uma vista de modelo que é um filho da home page ...
<%=Html.RouteLink(Model.Parent.Title, _
"IdOnly", _
New With {.id = Model.Parent.Id})%>
... gera a seguinte tag âncora:
<a href="/7">Home</a>
Como posso substituir o href
gerado pela função Html.RouteLink()
para minha home page?
Solução
Adicionar uma nova rota antes de sua rota "IdOnly" para a home page:
routes.MapRoute( _
"HomePage", _
"", _
New With {.controller = "Page", _
.action = "Details", _
.id = "7"} _
)
RouteLink
usará o mapeamento primeiro combinados na tabela de roteamento para gerar o link.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow