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