2012-06-07 112 views
0

如何正確寫入MVC 3 Razor?Razor MVC 3中的Html

<li <%if(ViewContext.RouteData.Values["Controller"].ToString() == "Home"){%> class="active"<%} %>><a href="@Url.Action("index", "Home")">Home</a></li> 

祝福

編輯

這是我的代碼,不工作:(

<div class="navbar"> 
<div class="navbar-inner"> 
    <div class="container"> 
    <a class="brand" href="#">CYSAC 2.0</a> 
     <ul class="nav"> 
      <li @(ViewContext.RouteData.Values["Controller"].ToString() == "Home" ? "class=\"active\"" : string.Empty)><a href="@Url.Action("index", "Home")">Inicio</a></li> 
      <li @(ViewContext.RouteData.Values["Controller"].ToString() == "University" ? "class=\"active\"" : string.Empty)><a href="@Url.Action("index", "University")">University</a></li> 
      <li @(ViewContext.RouteData.Values["Controller"].ToString() == "Estudent" ? "class=\"active\"" : string.Empty)><a href="@Url.Action("index", "Estudent")">Estudent</a></li> 

     </ul> 
    </div> 
</div><!-- /navbar-inner --> 
</div><!-- /navbar --> 

請幫助

+0

@jrummell請參閱我的編輯 – kalu

+1

@kalu - define「不起作用」,並且您看過輸出的HTML嗎? –

回答

1

我會爲這樣寫:

<li class="@ViewContext.RouteData.Values["Controller"].ToString() == "Home" ? "active" : """> 
    <a href="@Url.Action("index", "Home")">Home</a> 
</li> 

如果它不是當前的控制器,它有一個class =「」的缺點,但是在最新版本的Razor中,它會識別它並將其去掉。

+0

請參閱我的編輯 – kalu

0

可以使用@(expression) - 語法:

<li class="@((ViewContext.RouteData.Values["Controller"].ToString() == "Home" ? 
      "active" : string.Empty)"> 
    <a href="@Url.Action("index", "Home")">Home</a> 
</li> 
+0

請參閱我的編輯 – kalu

+0

修正了我的答案,它現在幾乎與Mystere Man's相同,並且具有相同的缺點。但是,如果沒有括號,代碼不適用於我。 – mnemosyn

0

今天,我發現自己在同樣的情況(5個月後)。

1)定義變量controllerName與控制器名.ToLower()

2)設置與equals比較( 「家」)

@{ 
     var controllerName = ViewContext.RouteData.Values["Controller"].ToString().ToLower(); 
    } 
    <div class="navbar"> 
    <div class="navbar-inner"> 
     <div class="container"> 
     <a class="brand" href="#">CYSAC 2.0</a> 
      <ul class="nav"> 
       <li class="@(controllerName.Equals("home") ? "active" : "")"><a href="@Url.Action("index", "Home")">Inicio</a></li> 
       <li class="@(controllerName.Equals("university") ? "active" : "")"><a href="@Url.Action("index", "University")">University</a></li> 
       <li class="@(controllerName.Equals("estudent") ? "active" : "")"><a href="@Url.Action("index", "Estudent")">Estudent</a></li> 

      </ul> 
     </div> 
    </div><!-- /navbar-inner --> 
    </div><!-- /navbar --> 

對我的作品!