asp.net - 如何在 ASP.NET MVC 中向 Html.ActionLink 添加“活动”类
问题描述
我有一个_layout.cshtml
这样的
<ul class="sidebar-menu tree" data-widget="tree">
<li class="header" style="color:white;font-weight:bold;">Test Menu</li>
<li>
<a href="@Url.Action("Index","Monney")">
<i class="fa fa-dashboard"></i> <span>Monney</span>
</a>
</li>
<li>
<a href="@Url.Action("Index","Bank")">
<i class="fa fa-dashboard"></i> <span>Bank</span>
</a>
</li>
<li>
<a href="@Url.Action("Index","User")">
<i class="fa fa-dashboard"></i> <span>User</span>
</a>
</li>
</ul>
我正在尝试在 MVC中将其添加"active"
class
到li
我的活动时。sidebar-menu
我怎样才能做到这一点?
解决方案
首先,如果您单击特定链接,如果您使用 jquery,您的页面将被刷新并且活动类将被删除。所以你需要使用 Viewbag 来管理它。
您需要在控制器中定义每个操作的值。
// let say you have User controller
public ActionResult Index()
{
ViewBag.data = "user";
return View();
}
在您的布局中,您需要检查该 viewbag 的值
<ul class="sidebar-menu tree" data-widget="tree">
<li class="header" style="color:white;font-weight:bold;">Test Menu</li>
<li id="money">
<a href="@Url.Action("Index","Monney")">
<i class="fa fa-dashboard"></i> <span>Monney</span>
</a>
</li>
<li id="bank">
<a href="@Url.Action("Index","Bank")">
<i class="fa fa-dashboard"></i> <span>Bank</span>
</a>
</li>
<li id="user">
<a href="@Url.Action("Index","User")">
<i class="fa fa-dashboard"></i> <span>User</span>
</a>
</li>
</ul>
<script>
$(document).ready(function () {
if ('@ViewBag.data' != null)
{
$('#' + '@ViewBag.data').addClass('active');
}
});
</script>
推荐阅读
- asp.net-core - ASP.NET Core 2.2 - 稍后在代码中访问 StaticFileOption RequestPath
- reactjs - React HOC 与 fetch 和 redirect 的组合导致内存泄漏
- tensorflow - 在 Google Cloud 上部署 TensorFlow 模型,接收 base64 编码字符串作为模型输入
- svelte - 如何在 Svelte 中修复“未定义 sessionStorage”?
- mysql - 为什么这条 SQL 语句不起作用?我的 MariaDB 服务器有问题吗?
- weblogic12c - 如何停止编码请求 url 的 weblogic 访问日志
- swift - 将带有日期的对象保存为用户默认值 - 日期不会相同
- google-sheets - 如何将 1 行转置为列并让另一列自动填充?
- javascript - 创建新文件夹时如何让 Google 脚本触发器自动触发(手动工作)
- git - 如何为分支优化 Jenkins 工作区