我有几个链接(登录,注销和注册)在_layout模板,这里的链接取决于用户是否登录显示像这样:
if (User.Identity.IsAuthenticated)
{
<span class="username">@User.Identity.Name</span>
<span class="link">@Html.ActionLink("Logout", "Logout", "Account")</span>
}
else
{
<span class="link">@Html.ActionLink("Login", "Login", "Account")</span>
<span class="link">@Html.ActionLink("Register", "Register", "Account")</span>
}
问题是,注销链接仍显示在第一时间的用户退出系统(我期望与登录立即更换,并注册链接) - 这是直到页面刷新,或者用户移动到另一页。 这里是注销操作的代码:
public ActionResult Logout()
{
FormsAuthentication.SignOut();
Session.Abandon();
return View();
}
-我已经通过这个环节去http://mvcdev.com/differences-between-asp-net-razor-and-web-forms-view-engines/ -这也解释了剃刀引擎的执行顺序,但对我来说它似乎是执行不同。 理想的情况是我期望FormsAuthentication.SignOut()在_layout的User.Identity.IsAuthenticated之前执行。
我究竟做错了什么? 谢谢!