我正在根据当前网址向Post 1
- Post 11
- Post 12
- Post 121
- Post 122
- Post 13
Post 2
- Post 21
- Post 211
添加类。
<li>
当我检查手表中的状况时,我在Visual Studio中得到了当前的类名“ active”。
但是,当我在浏览器中签到时,类不适用于<ul class="nav navbar-nav">
<li class="@{string.Format(Request.Url.PathAndQuery.ToLower() == "" ? "active" : string.Empty);}"><a href="/">Home </a></li>
<li class="@{string.Format(Request.Url.PathAndQuery.ToLower().Contains("aboutus") ? "active" : string.Empty);}"><a href="/AboutUs">About Us </a></li>
<li class="@{string.Format(Request.Url.PathAndQuery.ToLower().Contains("research") ? "active" : string.Empty);}"><a href="/Research">Research</a></li>
<li class="@{string.Format(Request.Url.PathAndQuery.ToLower().Contains("contactus") ? "active" : string.Empty);}"><a href="/ContactUs">Contact Us</a></li>
</ul>
。我确定它不会被任何其他代码覆盖。尽管如果我直接申请课程,那还是可以的。
答案 0 :(得分:2)
您需要更改为@(string.Format(Request.Url.PathAndQuery.ToLower() == "" ? "active" : string.Empty))
而不是@{}
<li class="@(string.Format(Request.Url.PathAndQuery.ToLower() == "" ? "active" : string.Empty))"><a href="/">Home </a></li>
您的代码应带有currentUrl
的变量
@{
var currentUrl = Request.Url.PathAndQuery.ToLower();
}
<ul class="nav navbar-nav">
<li class="@(string.Format(currentUrl == "" ? "active" : string.Empty))"><a href="/">Home </a></li>
<li class="@(string.Format(currentUrl.Contains("aboutus") ? "active" : string.Empty))"><a href="/AboutUs">About Us </a></li>
<li class="@(string.Format(currentUrl.Contains("research") ? "active" : string.Empty))"><a href="/Research">Research</a></li>
<li class="@(currentUrl.Contains("contactus") ? "active" : string.Empty))"><a href="/ContactUs">Contact Us</a></li>
</ul>