2012-04-07 4 views
3

html.actionlink에 문제가 있습니다. 나는이 개 정의 된 경로가 있습니다asp.net mvc 잘못된 경로를 사용하는 actionlink

routes.MapRoute(
       "AdminDefault", 
       "Admin/{controller}/{action}/{id}", 
       new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
      ); 
routes.MapRoute(
       "Default", 
       "{controller}/{action}/{id}", 
       new { controller = "Page", action = "Details", id = "0" } 
      ); 

가 actionlink가 나는 기본 컨트롤러를 사용할 때 AdminDefault을 사용합니다. 라우팅 링크를 사용하지 않고 기본 경로를 사용하려면 어떻게해야합니까?

추가 정보. 나는 간단한 행동 (가정/인덱스)를 가지고, 그것은보기 (index.cshtml), 해당보기에 내가 가진을 보여줍니다

"/이/홈/정보 관리"나는 할 때의 URL을 생성
@Html.ActionLink("About", "About", "Home") 

그것은 "/ home/About"이 defaultadmin 경로이므로 모든 관리 페이지에 대해/admin/controller/action으로 이동하는 링크를 나중에 만들 수 있습니다. 그러나 기본 생성 된 URL은 admin 아래에 있지 않아야합니다.

답변

2

영역에있는 뷰에서 Html.ActionLink를 사용하면 기본적으로 해당 영역이 해당 링크로 전달됩니다.

당신과 같이 Html.ActionLink 호출 할 수 있습니다이를 무시하려면 '새 {지역 = "AREANAME은"}'

@Html.ActionLink("linkText", "actionName", "controllerName", new {Area = "AreaName"}, null); 

는 경로 객체가 값과 '널 (null)'는 HTML 속성이 있습니다.

따라서 'new {Area = ""}'를 사용할 수 있습니다.

+0

영역을 사용하고 있지 않습니다. – Solmead

+0

아, 나는 오해했다. 이 경우 기존 규칙을 교체 한 다음 관리 페이지의 경로를 수동으로 만들어야합니다. 또는 관리 영역을 추가 할 수 있습니다. –

관련 문제