我在网站标题中有一部分导航栏代码。
我在几个观点中重复它。
对于所有视图,代码几乎相等,仅为设置css类“active”而更改,以设置<li>
TAG的背景颜色。
部分观点
@Model String
<nav class="navbar">
<div class="container">
<ul class="nav nav-pills nav-justified">
<li>
<a href="MainPage">
<span class="glyphicon glyphicon-dashboard" aria-hidden="true"> </span>
MainPage
</a>
</li>
<li class="active">
<a href="SectionSummary">
<span class="glyphicon glyphicon-stats" aria-hidden="true"> </span>
Summary
</a>
</li>
<li>
<a href="Check">
<span class="glyphicon glyphicon-check" aria-hidden="true"> </span>
Check
</a>
</li>
<li class="(@Model=="Print")?"active":"">
<a href="Print">
<span class="glyphicon glyphicon-print" aria-hidden="true"> </span>
Print
</a>
</li>
</ul>
</div>
</nav>
我以这种方式在视图中调用它:
@Html.Partial("~/Views/Shared/PSANavigationBar.cshtml")
我会将参数传递给@Html.Partial
,然后在PartialView中测试一个值并在出现条件时标记class="active"
!
例如:
@Html.Partial("~/Views/Shared/PSANavigationBar.cshtml", "Print")
在视图中,如下所示:
</li>
<li class="(@Model=="Check")?"active":"">
<a href="Check">
<span class="glyphicon glyphicon-check" aria-hidden="true"> </span>
Check
</a>
</li>
<li class="(@Model=="Print")?"active":"">
<a href="Print">
<span class="glyphicon glyphicon-print" aria-hidden="true"> </span>
但它不起作用! 我该怎么办?
非常感谢所有人。
答案 0 :(得分:1)
您调用局部视图的方式看起来没问题,您只需要更改选择课程的方式:
<li class="@(Model == "Check" ? "active":"")">
Model
是您接收参数的方式,这是一种可以在剃刀条件下选择类的方法。你可以看到another example在使用asp mvc razor的情况下如何选择你的班级。
你应该有这样的东西:
@model String
<nav class="navbar">
<div class="container">
<ul class="nav nav-pills nav-justified">
<li>
<a href="MainPage">
<span class="glyphicon glyphicon-dashboard" aria-hidden="true"> </span>
MainPage
</a>
</li>
<li class="active">
<a href="SectionSummary">
<span class="glyphicon glyphicon-stats" aria-hidden="true"> </span>
Summary
</a>
</li>
<li>
<a href="Check">
<span class="glyphicon glyphicon-check" aria-hidden="true"> </span>
Check
</a>
</li>
<li class="@(Model=="Print"?"active":"")">
<a href="Print">
<span class="glyphicon glyphicon-print" aria-hidden="true"> </span>
Print
</a>
</li>
</ul>
</div>
</nav>
请注意@
在括号(
之前,而不是在课堂之后。