gpt4 book ai didi

javascript - 重定向 View 在 MVC 应用程序中不显示 "active"属性

转载 作者:行者123 更新时间:2023-11-28 15:23:13 25 4
gpt4 key购买 nike

我正在使用一个新的 MVC 4 应用程序。基本上,顶部有一些菜单项,当前事件页面在我的 _Layout.cshtml 中使用以下 JavaScript 突出显示:

<script type="text/javascript">
$(document).ready(function () {
$('#top-navbar .nav a[href="' + this.location.pathname + '"]').parent().addClass('active');
});
</script>

通过顶部的菜单进行导航时效果非常好。但是,我添加了“登录”功能,如果用户在登录后尝试返回登录页面,它只会向他们发送 Index View 而不是 登录 View 。问题是,CSS 仍然突出显示菜单中的 Login 按钮,而不是 Home 按钮。

我通过 Session 状态保留用户的登录信息。这是 Login() ActionResult:

[HttpGet]
public ActionResult Login()
{
if (Session["ContactName"] != null)
{
return View("Index");
}
else
{
return View();
}
}

如您所见,如果 ContactName 不为 null 则他们已经登录,因此它会向他们发送 Home View 。我应该Redirect()到主页吗?

另外,如果需要的话,这里是菜单导航栏:

<ul class="nav navbar-nav">
<li>@Html.ActionLink("Home", "Index", "Home")</li>
<li>@Html.ActionLink("About Us", "About", "Home")</li>
<li>@Html.ActionLink("Customer Login", "Login", "Home")</li>
</ul>

最佳答案

问题是您的客户端仍然将 URL 视为 /Login 而不是索引,因此您最好重定向用户。您可以使用 RedirectToAction 来执行此操作 Controller 方法并为其提供返回索引 View 的 Controller 和操作名称:

[HttpGet]
public ActionResult Login()
{
if (Session["ContactName"] != null)
{
return RedirectToAction("Index", "Home");
}
else
{
return View();
}
}

关于javascript - 重定向 View 在 MVC 应用程序中不显示 "active"属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30361251/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com