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

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

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

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



답변

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

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

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


답변

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

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

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

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


답변

여기에 제공된 다른 답변 외에도 RouteLink는 조금 더 빠르며 라우팅 테이블을 변경했기 때문에 잘못된 경로를 일치시킬 수 없습니다.


답변

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


답변