_layout:
@if (User.Identity.IsAuthenticated)
{
<li>@Html.DropDownList("User", new List<SelectListItem>
{
new SelectListItem { Text = User.Identity.Name, Value = "1", Selected = true },
new SelectListItem { Text = "Logout", Value = "2" }
})</li>
}
当用户点击logout选项下拉列表时,我需要像使用ActionLinks一样调用Logout()方法。我该怎么做?
修改 注销不使用新的jquery代码。这是为什么?
public ActionResult Logout()
{
FormsAuthentication.SignOut();
return View("../Home/Index");
}
我的旧代码仍可以通过注销用户来解决。
<li>@Html.ActionLink("Logout", "Logout", "Users", new { }, new { @class = "nav-link" })</li>
答案 0 :(得分:1)
假设你使用的是jQuery,你可以这样做:
<script type="text/javascript">
$(function() {
$('#User').on('change', function (event) {
if (event.currentTarget.selectedIndex === 1) {
// redirect to your logout controller, redirect
window.location.href = '/controller/logoutaction';
}
});
});
</script>
或者,您可以使用这些项目执行无序列表,这些项目将在单击或悬停其他元素时显示。当然你必须设计风格。这样您就可以使用ActionLink。 MVC.Authentication.LogOut()
只是注销的示例动作。
<div class="myDropdown">
<ul>
<li>User.Identity.Name</li>
<li>@Html.ActionLink("Log out", MVC.Authentication.LogOut())</li>
</ul>
</div>