[css] ASP.NET MVC에서 현재 페이지를 시각적으로 표시하는 방법은 무엇입니까?



1 Answers

나는 최근에 다음과 같은 HTML 도우미를 만들었습니다.

public static string NavigationLink(this HtmlHelper helper, string path, string text)
{
    string cssClass = String.Empty;
    if (HttpContext.Current.Request.Path.IndexOf(path) != -1)
    {
        cssClass = "class = 'selected'";
    }

    return String.Format(@"<li><a href='{0}' {1}>{2}</a></li>", path, cssClass, text);
}

구현은 다음과 같습니다.

  <ul id="Navigation">
  <%=Html.NavigationLink("/Path1", "Text1")%>
  <%=Html.NavigationLink("/Path2", "Text2")%>
  <%=Html.NavigationLink("/Path3", "Text3")%>
  <%=Html.NavigationLink("/Path4", "Text4")%>
  </ul>
Question

토론의 거점. 표준 ASP.NET MVC 웹 프로젝트를 만듭니다.

마스터 페이지에는 두 개의 메뉴 항목이 있습니다.

<div id="menucontainer">
  <ul id="menu">
    <li>
      <%= Html.ActionLink("Home", "Index", "Home")%></li>
    <li>
      <%= Html.ActionLink("About", "About", "Home")%></li>
  </ul>
</div>

현재 페이지를 나타내는 시각적 CSS 스타일을 어떻게 설정할 수 있습니까? 예를 들어 About 페이지 / 컨트롤러에서 본질적으로 이렇게하고 싶습니다.

<%= Html.ActionLink("About", "About", "Home", new {class="current"})%></li>

그리고, 물론, 홈 페이지에서 :

<%= Html.ActionLink("Home", "Index", "Home", new {class="current"})%></li>

(CSS 스타일 이름은 메뉴에서 현재 페이지임을 시각적으로 나타냅니다.)

마스터 페이지에서 콘텐츠 자리 표시 자로 메뉴 div를 나눌 수는 있지만 모든 페이지에 메뉴를 표시해야합니다.

어떤 아이디어라도 이것에 대한 좋은 해결책이 있습니까?




그것은 단지 그것이 5 번째 매개 변수 일 수 있으므로 html 속성 앞에 null을 삽입하십시오. 이 게시물은 여기에 설명되어 있습니다. 비록 네 번째 논점에서 몇 가지를 전달할 수 있지만, 다섯째는 특히 HTMLattributes



Related