2012-03-21 5 views
3

ASP.Net MVC3은 멋지지만이 질문은 프로그래밍 문제보다 더 궁금합니다. 'Index'액션이있는 'StarController'가있는 'Cosmos'라는 영역이 있다고 가정 해보십시오.ASP.Net MVC3 영역을 가진 ActionLink 만들기

이제 액션 링크를 만들어야한다면이 두 문장의 차이점은 무엇입니까? 그것의 모양으로

Html.ActionLink("Stars", "Index", "Stars", new { area = "Cosmos" }, null) 

Html.ActionLink("Stars", "Index", "Cosmos/Stars") 

, 그들은 정확히 같은 일. 그것이 실제로 똑같은 일을하는 경우 익명 유형 {area = "Cosmos"}의 사용은 무엇입니까?

답변

3

두 번째 예에서는 controllerName 인수를 Cosmos/Stars으로 잘못 설정했습니다. 컨트롤러는 그런 식으로 호출 할 수 없습니다. 도우미는 단순히 인수를 그대로 사용하기 때문에 올바른 결과를 생성하지만 라우트는 특정 스타일로 가정합니다. 라우팅 정의를 변경하는 순간이 링크는 계속 잘못된 마크 업을 생성합니다. 첫 번째 예제에서는 하드 코딩 된 URL 패턴에 더 이상 의존하지 않습니다. 경로와 영역이 어떻게 구성 되더라도 항상 올바른 URL을 생성합니다.