ASP.NET MVC에서 RouteLink와 ActionLink의 차이점은 무엇입니까?


120

나는 제목이 그것을 거의 요약한다고 생각한다.

의 차이 무엇입니까 RouteLink()ActionLink()ASP.NET MVC의는?

즉, 언제 사용 Html.RouteLink()하고 언제 사용 Html.ActionLink()합니까?

답변:


78

액션과 경로는 1 : 1 관계가 아니어도됩니다.

ActionLink는 작업 이름별로 일치하는 첫 번째 경로를 사용하여 작업에 도달하기위한 URL을 생성합니다.

RouteLink는 이름 또는 경로 값으로 결정된 특정 경로에 대한 URL을 생성합니다.


멋진 블로그 게시물에 +1하세요. 정말 편리합니다. 그리고 너무 많은 가능성이 있음을 보여줍니다. MS 직원은 가장 빠른 방법 만 구현해야합니다. 그러나 사람들은 가장 느린 람다를 사용합니다.
Robert Koritnik

고마워요하지만 링크가 끊어진 것 같아요. PLS 다시 나에게 링크 감사를 제공합니다
user1006544

5
예를 들어도 될까요?
MaylorTaylor

67

실제로 두 메서드의 출력은 동일하지만 약간 다른 방식으로 생성됩니다.

Html.ActionLink()ActionLink를 빠르고 쉽게 생성 할 수 있으며 렌더링되는 항목에 대한 기본 제어를 제공합니다. 경로가 너무 많지 않거나 너무 많거나 구체적인 정보를 제공 할 필요가없는 경우이 방법을 사용하면 문제가 해결됩니다.

Html.RouteLink()메서드는 약간 다른 인수를 사용하므로 작업 처리 방식을 좀 더 자세히 제어 할 수 있습니다. 시나리오가 좀 더 복잡하거나 경로 구조가 더 자세한 경우이 방법을 사용하는 경향이 있습니다.
한 가지 예는 (유연성을 위해) 많은 정보를 허용하는 하나의 복잡한 경로보다 매우 간단한 여러 경로를 갖는 최근 프로젝트입니다. 따라서 동일한 컨트롤러에 대해 모두 기본 동작이 지정된 4 개 또는 5 개의 경로를 사용하게되었습니다. 나는 주로RouteLink경로 이름을 지정할 때 기본 매개 변수가 자동으로 입력 되었기 때문에 버전을 .

원하는대로 사용하고 프로젝트에 적합합니다. 그들 중 어느 쪽에도 실제로 상승 / 하락이 없습니다 (다른 것과 일치하지 않습니다 ...).



12

RouteLink는 경로의 이름을 취하므로 경로 이름이 신뢰할 수 있고 상당히 고유 한 경우 사용할 작업 이름이 변경 되더라도 동일합니다. ActionLink는 대신 특정 컨트롤러의 특정 작업에 연결됩니다. 나는 어떤 종류의 링크를 추구하는지에 따라 내 뷰에서 둘 다 사용합니다!

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.