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
}