0

これを MVC 3 Razor で正しく記述するにはどうすればよいですか?

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

助けてください

4

3 に答える 3

1

これを次のように書きます。

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

これには、現在のコントローラーでない場合に class="" があるという欠点がありますが、Razor の最新バージョンでは、これを認識して削除します。

于 2012-06-07T16:58:11.390 に答える
0

今日、私は同じ状況にいることに気づきました(5か月後)。

1)変数controllerNameを定義し、コントローラー名.ToLower()で設定します

2)Equals( "home")と比較する

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

私のために働く!

于 2012-11-14T10:12:37.003 に答える
0

@(expression)- 構文を使用できます。

<li class="@((ViewContext.RouteData.Values["Controller"].ToString() == "Home" ?
           "active" : string.Empty)">
    <a href="@Url.Action("index", "Home")">Home</a>
</li>
于 2012-06-07T16:58:26.753 に答える