2013-03-11 3 views
0

ASP.NET MVC를 사용하여 페이지를 작성하고 있습니까? 이제 문제가 생겼어. 당신이이 탐색 목록의 두 가지 수준이 될 수 SE는 것처럼클릭 한 탐색 요소에 클래스 설정

다음 코드는 내 탐색 목록

 <li class="current start"> 
      <a href="/home"> 
       <i class="icon-home"></i> 
       <span class="title">Dashboard</span> 
       <span class="current"></span> 
      </a> 
     </li> 
     <li class="has-sub"> 
      <a href="javascript:;"> 
       <i class="icon-bookmark-empty"></i> 
       <span class="title">Leads</span> 
       <span class="arrow"></span> 
       <span class=""></span> 
      </a> 
      <ul class="sub"> 
       <li><a href="/lead?status=1">Inkorg</a></li> 
       <li><a href="/lead?status=2">Utskick</a></li> 
       <li><a href="/lead?status=3">Akriverade</a></li> 
      </ul> 
     </li> 

에서 가져옵니다. 클릭 한 항목에 class current를 설정하고 게시 후에 기억해야합니다. 그리고 두 번째 예제에서는 li 요소의 하위 수준과 최상위 수준에서 클래스 전류를 설정해야합니다. 쿠키를 사용하여 이것을 기억할 수 있습니까? 또는 이것을 해결하는 가장 좋은 방법은 무엇입니까?

+0

아무 것도 시도해 보지 않으셨습니까? 아약스처럼. – Jai

답변

1

첫째, 차라리 즉, HTML에서 그것을 하드 코딩보다, URL을 얻을 MVC 경로를 사용하는 것이 좋습니다 :

@Url.Action("Lead", new { status = 1 }) 

또는

@Url.RouteUrl("MyLeadRoute", new { status = 1 }) 

번째 버전을 사용하면 다음을 할 수 있습니다 Action/Controller 콤보 대신 명명 된 경로를 사용하십시오.

@{ url = Url.Action("Lead", new { status = 1 }); } 
<[email protected]((Request.RawUrl == url) ? " class='current'" : "")><a href="@url">Some Link</a></li> 

참고 :

은 그럼 당신은 일반적으로 같은 패턴을 따를 것입니다 코드에서 이전 @{ string url; }을 정의해야합니다.

모든 링크를 린스하고 반복하십시오.

관련 문제