Eu gostaria de usar o auxiliar de tag âncora para "anexar" rotas a um URL existente da página. Por exemplo, estou em uma página com o URL /search?q=foo
.
Gostaria de criar uma âncora nessa página que adiciona &z=bar
ao URL.
Tentei o seguinte:
<a asp-route-z="bar">Load</a>
Mas isso gera /search?z=bar
.
Eu quero que ele gere /search?q=foo&z=bar
.
Eu sei que poderia fazer isso de algo como:
<a asp-route-q="@query["q"]" asp-route-z="bar">Load</a>
mas quando minha página tem um grande número de strings de consulta possíveis, não quero ter que digitá-las o tempo todo. Eu só quero acrescentar, ou substituir, novas rotas de string de consulta para o URL da página existente.
Isso é possível com os auxiliares de tag existentes ou exigirá algo personalizado?
@Kspearrin , no momento não é possível com TagHelper
s fazer o que você está pedindo. No entanto, as soluções alternativas que você mencionou são alternativas apropriadas.
O roteamento em geral não oferece tal coisa, mas isso pode ser um recurso interessante no futuro.
@kspearrin Tenho usado isso como uma solução alternativa. Você pode colocá-lo em um método de extensão para torná-lo mais fácil de usar.
<a asp-all-route-data="Context.Request.Query.ToDictionary(q => q.Key, q => q.Value.ToString())" asp-route-z="bar" />
Não há planos para implementar esse recurso.
Comentários muito úteis
@kspearrin Tenho usado isso como uma solução alternativa. Você pode colocá-lo em um método de extensão para torná-lo mais fácil de usar.
<a asp-all-route-data="Context.Request.Query.ToDictionary(q => q.Key, q => q.Value.ToString())" asp-route-z="bar" />