【问题标题】:How to use ViewContext?如何使用 ViewContext?
【发布时间】:2026-01-20 06:20:04
【问题描述】:

我在 asp.net MVC 应用程序中有布局页面,该页面包含一个导航栏

 <ul class="sidenavbar">
   <li><a   style="font-size:large">ASP.NET Tutorial</a></li>
   <li>@Html.ActionLink("Home","Home")</li>
   <li>@Html.ActionLink("Introduction", "Introduction")</li>
   <li>@Html.ActionLink("Getting Started", "GettingStarted")</li>
 </ul>

看到我的 navbar 中的每个项目都有 actionmethod 现在我想将 cssactive 应用于当前选择的 list item 如何使用 ViewContext 或是否有更好的方法来实现这一点?

【问题讨论】:

标签: css asp.net viewcontext


【解决方案1】:

这可能有效

<ul class="nav navbar-nav">
  <li class="@(ViewContext.RouteData.Values["controller"].ToString() == "Home" ? "active" : "")">@Html.ActionLink("Home", "Index", "Home")</li>
  <li class="@(ViewContext.RouteData.Values["controller"].ToString() == "About" ? "active" : "")">@Html.ActionLink("About", "About", "Home")</li>
  <li class="@(ViewContext.RouteData.Values["controller"].ToString() == "Contact" ? "active" : "")">@Html.ActionLink("Contact", "Contact", "Home")</li>
</ul>

【讨论】:

  • 我可以在 c# 类中访问 ViewContext.RouteData 实际上我想创建一个类似于 ActionLink() 的扩展方法来完成这项工作吗?