I am adding class to <li> based on the current url.
<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>
When I check the condition in watch, I am getting current class name "active" in visual studio.
But when I check in browser, class doesn't apply to <li>. I am sure that it is not override by any other code. Although If I apply class directly, it works.


string.Format?