2010-02-12 3 views
3

에서 가져옵니다. 나는 masterpage에 다양한 링크를 가지고있다. 예를 들어asp.net mvc를 사용하여 현재 컨트롤러와 동작을 masterpage

/홈/

/홈/약

/뉴스/

/문서/

나는 내가 그것을 설정하는 클래스를 원하는 링크를 선택하면

. 예 : 뉴스 링크를 선택하면 클래스를 설정하여 강조 표시하고 싶습니다.

어떻게 클래스 속성을 설정하려면 어떤 컨트롤러와 작업이 필요합니까?

답변

3

routedata에 해당 정보가 포함됩니다. 키 "컨트롤러"는 컨트롤러의 이름을 포함하고 키 "액션"은 액션의 이름을 포함합니다.

당신이하고 싶은 것을 해결하기 위해서 나는 컨트롤러 이름과 액션 이름이 들어있는 body 태그에 id를 넣는다. 이런 식으로 뭔가 :

public static string GetBodyId(this HtmlHelper helper) { 
    return string.Format("{0}-{1}", 
     helper.ViewContext.RouteData.GetRequiredString("controller"), 
     helper.ViewContext.RouteData.GetRequiredString("action"); 
} 

그런 다음 나는이 같은 것을 볼 수 있습니다 내 마스터 페이지 내 링크에 클래스를 넣어 :

<body id="<%=Html.GetBodyId()%>"> 

그리고 다음과 같이 보일 것이다 GetBodyId() 메소드

<a href="[[link]]" class="home-index-link">Home</a> 

그런 다음 선택한 링크의 모양이 다를 수있는 방식으로 내 CSS 규칙을 만들 수 있습니다. 그러면 다음과 같이 보일 수 있습니다.

.home-index-link { 
    /*css rules here*/ 
} 
#home-index .home-index-link { 
    /*css for selected link*/ 
} 
+0

단, 편집하기 전에 로그인을 잊어 버렸습니다. ViewContext가 HtmlHelper (도우미)의 속성 인 경우 혼란 스러울지라도 여기에 제안 해 주셔서 감사합니다. – DaveD

관련 문제