C# Asp.net核心mvc--在用户登录时更改部分
我有一个类似这样的部分:C# Asp.net核心mvc--在用户登录时更改部分,c#,razor,asp.net-core,razor-pages,C#,Razor,Asp.net Core,Razor Pages,我有一个类似这样的部分: @if (SignInManager.IsSignedIn(User)) { <form asp-area="" asp-controller="Account" asp-action="Logout" method="post" id="logoutForm" class="navbar-right"> <ul class="nav navbar-nav navbar-right"> <li
@if (SignInManager.IsSignedIn(User))
{
<form asp-area="" asp-controller="Account" asp-action="Logout" method="post" id="logoutForm" class="navbar-right">
<ul class="nav navbar-nav navbar-right">
<li>
<a asp-area="" asp-controller="Manage" asp-action="Index" title="Manage">Hello @UserManager.GetUserName(User)!</a>
</li>
<li>
<button type="submit" class="btn btn-link navbar-btn navbar-link">Log out</button>
</li>
</ul>
</form>
}
else
{
<ul class="nav navbar-nav navbar-right">
<li><a asp-area="" asp-controller="Registrieren" asp-action="Create">Anmelden</a></li>
<li><a asp-area="" asp-controller="Login" asp-action="Details">Einloggen</a></li>
</ul>
}
甚至可能是类似的
name = HttpContext.Session.GetString("nameKey");
if(name != "")
{
//show logged in part of partial
}
实现这一点最简单的方法是什么?您实际上是如何登录的?答案取决于您是使用内置框架还是not@CamiloTerevinto我正在使用中间件设置会话。我正在使用实体框架和Microsoft.AspNetCore。Session@CamiloTerevinto基本上我想说的是,如果会话存在,请显示已部分登录。然后您应该能够使用
@if(session[“whatever”!=null).
至少在asp.net core 1.0中,可以使用Microsoft.AspNetCore.Http通过@访问会话代码>+Context.Session.GetString(“键”)
在视图中。我不确定这在2.0中是否发生了变化。
name = HttpContext.Session.GetString("nameKey");
if(name != "")
{
//show logged in part of partial
}