Passando Dois Parâmetros em Url.Action no ASP.NET: Uma Solução
Resposta Rápida
Se você deseja adicionar parâmetros ao Url.Action
no ASP.NET MVC, utilize o seguinte comando com um objeto anônimo:
@Url.Action("Ação", "Controlador", new { id = 123, nome = "João" })
Isso gerará um link que inclui os parâmetros como parte da string de consulta:
<a href="@Url.Action("Ação", "Controlador", new { id = 123, nome = "João" })">Link</a>
Certifique-se de que os nomes dos parâmetros correspondem às suas rotas.
Detalhes Sobre a Codificação dos Parâmetros
É fundamental garantir a codificação correta dos parâmetros da URL e sua interpretação adequada na web. Após usar o método Url.Action
, verifique a validade da URL para minimizar o risco de erros inesperados.
Correspondendo Parâmetros da Ação do Controlador com Url.Action
Os parâmetros do método Url.Action
devem corresponder exatamente aos parâmetros da ação do controlador. Aqui está um exemplo de um método de ação:
public ActionResult ObterPorLista(string categoria, string subcategoria)
{
// código para obter lista por categorias
}
A chamada correspondente de Url.Action
seria:
@Url.Action("ObterPorLista", "Produtos", new { categoria = "Eletrônicos", subcategoria = "Notebooks" })
Cuidado com o Objeto routeValues
Não se esqueça de usar chaves {}
ao utilizar o objeto routeValues
— isso ajuda a evitar erros ao gerar links.
<a href="@Url.Action("Ação", "Controlador", new { id = 123, nome = "João" })">Link</a>
Utilize Formatos de Rotas Padrão
Para construir um link amigável, use rotas padrão. Não se esqueça de especificar o parâmetro Area
caso a ação seja executada em uma parte diferente da aplicação MVC:
@Url.Action("Ação", "Controlador", new { Área = "Admin", id = 123, nome = "João" })
Evite Espaços (e Teste Regularmente!)
Espelhos em nomes de parâmetros devem ser evitados. Sempre teste os links que você cria em vários navegadores para verificar sua funcionalidade.
Atenção a Caracteres e Sensibilidade de Maiúsculas e Minúsculas
Preste atenção ao uso de letras maiúsculas e minúsculas nos nomes das ações, dos controladores e nos parâmetros. Tente evitar o uso excessivo de aspas nos valores dos parâmetros.
Visualização
O método Url.Action
funciona de forma semelhante a encontrar a ferramenta certa na sua " caixa de ferramentas":
🧰.getTool("🔧", { tamanho: "M", tipo: "Ajustável" });
Neste caso, Url.Action
ajuda a encontrar a ação necessária com os parâmetros especificados:
Url.Action("Baixar", "Arquivos", new { tipoDeArquivo = "PDF", ano = 2021 })
🗂️🔗📥: [📄="PDF", 🕒=2021]
Recursos Úteis
- Método UrlHelper.Action (System.Web.Mvc) | Microsoft Learn — documentação oficial da Microsoft para o método
Url.Action
. - HTML Helpers no ASP.Net MVC — uma análise aprofundada sobre o mundo dos HTML helpers no ASP.NET MVC.
- css - Como adicionar classe ativa ao Html.ActionLink no ASP.NET MVC - Stack Overflow — discussões sobre formas de usar o método
Url.Action
no Stack Overflow. - Roteamento de URL com ASP.NET 4.0 - CodeProject — um artigo sobre os fundamentos do roteamento de URL no ASP.NET no CodeProject.
- Vídeo no YouTube - Mergulho Profundo em Roteamento e Url.Action no ASP.NET MVC — uma visão detalhada de como o método
Url.Action
funciona.