2013-03-11 47 views
0

正在使用ASP.NET MVC構建頁面。現在我遇到了問題。在點擊導航元素上設置類

下面的代碼是從我的導航列表

 <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> 

正如你瑟也可能是這個導航列表中的兩個級別服用。 我需要在單擊的項目上設置類別當前並在發佈後記住它。而在第二個例子中,我需要在li元素的子層和頂層設置類電流。我可以使用cookie來記住這一點嗎?或者什麼是解決這個問題的最好方法?

+0

你有試過什麼嗎?像阿賈克斯一樣。 – Jai 2013-03-11 11:19:08

回答

1

首先,我會建議使用MVC的路線,以獲得URL,而不是硬編碼的HTML,即:

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

或者

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

第二個版本允許你使用命名路線而不是操作/控制器組合。

那麼你會通常遵循類似的模式:

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

注意:你需要在你的代碼前面定義@{ string url; }

沖洗並重復所有的鏈接。

相關問題