2011-09-26 4 views
2

내 웹 사이트 프로젝트에서 ASP.NET MVC "면도기"를 사용하고 있습니다. 나가서 배우기.페이지에서 선택한 메뉴 항목 클래스 변경

내 사이트에 5 ~ 6 페이지가 있고 다른 사이트에 1 페이지가 있습니다. 사용자가 모두 동일한 사이트를 사용하고있는 것처럼 느껴지 길 바랍니다.

레이아웃에 XHTML 정렬되지 않은 목록과 CSS를 사용하여 표준 패턴 다음 페이지의 일반적인 HTML 메뉴가 있습니다 : 나는 사람들이 싶었 광산에 대한 질문이 유사한 발견

다른 곳 SO에
<ul id="menu"> 
    <li class="selected"><a href="@Href("~/")">Home</a></li> 
    <li><a href="http://ceklog.kindel.com">cek.log</a></li> 
    <li><a href="@Href("~/Services")">Services</a></li> 
    <li><a href="@Href("~/Charlie")">Charlie's Stuff</a></li> 
    <li><a href="@Href("~/Contact.cshtml")">Contact</a></li> 
</ul> 

은 선택한 메뉴 항목을 추적하지만 동적 페이지 내에서 추적하십시오. 예를 들어 :

Javascript Changing the selected Menu items class

는 그러나이 방법은 사용자가 한 페이지에서 선택을 변경하지만, 완전히 다른 페이지로 이동하지 않기 때문에 내 경우에는 내 경우에는 작동하지 않습니다.

어떻게이 작업을 수행 할 수 있습니까?

답변

1

... 나는 그것을 알아 낸 것입니다.

저는 이것을 서버 측에서 구현하기 위해 Razor를 사용했습니다.

<ul id="menu"> 
    <li class="@Selected("Home")"><a href="@Href("~/")">Home</a></li> 
    <li class="@Selected("cek.log")"><a href="http://ceklog.kindel.com">cek.log</a></li> 
    <li class="@Selected("Services")"><a href="@Href("~/Services")">Services</a></li> 
    <li class="@Selected("Charlie's Stuff")"><a href="@Href("~/Charlie")">Charlie's Stuff</a></li> 
    <li class="@Selected("Contact")"><a href="@Href("~/Contact.cshtml")">Contact</a></li> 
</ul> 

작품 완벽 :

@functions { 
    public string Selected(string PageTitle) { 
     if (Page.Title == PageTitle) 
      return "selected"; 
     else 
      return ""; 
    } 
} 

가 그럼 난 내 목록에서이 기능을 사용 :

먼저 내 _SiteLayout.cshtml 페이지 (모든 페이지가 사용하는 템플릿) 기능을 구현했습니다. 내 외부 페이지에서는 Wordpress를 기반으로하고 Razor를 기반으로하므로 손으로 코딩했습니다.