类似于 Asp.Net Core Razor Pages 中 WebForms 的 LoginView

Similar to LoginView from WebForms in Asp.Net Core Razor Pages

我一直在搜索,但找不到有关 razor 页面中登录视图的任何信息。我喜欢登录视图以及根据角色分离模板是多么容易。有没有办法在剃刀页面中做到这一点?

这是来自网络表单示例的登录视图

<asp:LoginView runat="server">
    <RoleGroups>
        <asp:RoleGroups Roles="Admin">    
            <ContentTemplate>            
                Welcome Admin

            </ContentTemplate>
        </asp:RoleGroups>
        <asp:RoleGroups Roles="User">    
            <ContentTemplate> 
                Welcome User     

            </ContentTemplate>            
        </asp:RoleGroups>
    </RoleGroups>
</asp:LoginView>

基本上如何根据用户的角色 html 呈现不同的

一般来说,在您看来,可以使用User.IsInRole:

@if (User.IsInRole("Admin"))
{
    @:Welcome Admin
}

@if (User.IsInRole("User"))
{
    @:Welcome User
}

现在,就创建可重用视图而言,您要么使用分部视图,要么使用视图组件。对于这种特殊情况,局部视图应该就足够了。当您需要注入依赖项、执行自定义查询或其他高级逻辑时,视图组件更合适,其中 none 这里是必需的。

因此,创建一个新的 Razor 视图,如 _Login.cshtml 并将您的代码放在那里。然后,在您想要显示该内容的位置,例如在布局中:

<partial name="_Login" />