Pergunta

Eu acho que o título praticamente resume tudo:

Qual é a diferença entre RouteLink() e ActionLink() no ASP.NET MVC?

i. quando você usa Html.RouteLink() e quando você usa Html.ActionLink() na sua opinião?

Foi útil?

Solução

Ação e Rotas não tem que ter um 1:. Relação 1

ActionLink irá gerar o URL para chegar a uma ação usando a primeira rota correspondente pelo nome da ação.

RouteLink irá gerar uma URL para uma rota específica determinada por nome ou rota valores.

Outras dicas

Na verdade, a saída dos dois métodos é o mesmo, mas é gerada de forma ligeiramente diferente:

Html.ActionLink() marcas mais fácil para gerar ActionLinks rápido, e lhe dará controle básico sobre o que é processado. Se você não tem muitas rotas, ou não precisa de dar muito ou informações muito específicas, isto irá fazer o trabalho muito bem.

O Html.RouteLink() método leva um pouco diferentes argumentos e, assim, dá-lhe um controle pouco mais detalhada sobre a forma como as coisas são tratadas. I tendem a usar esse método quando meu cenário é um pouco mais complicado, ou quando tenho uma estrutura de rotas mais detalhada.
Um exemplo é um projeto recente onde eu (flexibilidade), em vez teve várias rotas diferentes, que foram todos muito simples, de um complexo que permita um monte de informações. Assim, acabei com quatro ou cinco rotas para o mesmo controlador, todos com uma ação padrão especificado. Eu, principalmente, usou a versão RouteLink, porque quando eu especificado um nome de rota, os parâmetros padrão foram inseridos automaticamente.

Use-os como você sente, e como eles fazem sentido para o seu projeto. Não há realmente nenhuma cabeça / desvantagem para qualquer um deles (que não é acompanhado por alguns outros ...).

Além das outras respostas dadas aqui, RouteLink é um pouco mais rápido, e não pode jamais coincidir com o caminho errado, porque você mudou sua tabela de roteamento.

RouteLink leva o nome de uma rota, por isso, se seus nomes de rota são confiáveis ??e bastante singular, então este será o mesmo, mesmo que o nome da ação para haver mudanças usados. ligações actionlink para uma ação específica de um controlador específico, em vez. Eu uso tanto em meus pontos de vista, dependendo do tipo de ligação que eu estou atrás!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top