微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否可以使 Razor Tag Helper 在某些服务器端条件下显示/隐藏包裹在其中的内容

如何解决是否可以使 Razor Tag Helper 在某些服务器端条件下显示/隐藏包裹在其中的内容

确实按照标题,但要提供更多细节:

我的网络应用有多个用户,每个用户都有一组不同的权限,这意味着应用的某些部分对他们不可用,在大多数情况下这很简单,整个部分只是被屏蔽不显示在全部,但在某些情况下,我希望能够将页面的某个部分包装在一个标签中,如果用户无权查看,将完全隐藏该部分,或者显示“您没有权限使用这个位”部分视图。

我使用的是 .NET Core 3.1 和 Razor Pages。

所以我在想这样的事情:

<html>
<body>
    My web page content....
    <permission requires="view_invoices">
        <h3>Invoices</h3>
        .... invoice content.... 
        BUT - if user has not got permission this section is skipped,so is blank,or shows (/Views/Partial/PermissionNotAvailable)
    </permission>
</body>
</html>

编辑 - 为清楚起见,我希望能够在假设用户有权查看的情况下编写我的内容,但如果他们没有权限,则它包含在 permissions 标签助手中的事实将具有它被服务器端助手删除或替换。

解决方法

如果您使用 ASP.NET authorization 和 razor 页面,您可以执行以下操作:

@if (User.IsInRole("ViewInvoices")) {
    <h3>Invoices</h3>
    .... invoice content.... 
} else {
    (/Views/Partial/PermissionNotAvailable)
}

其中 ViewInvoices 是您添加到数据库并分配给某些用户的角色。如果用户没有此角色,则页面的该部分不会返回给客户端。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。