首页 > 解决方案 > ASP MVC 核心 | 索赔 | 剃须刀 | 根据声明显示/隐藏元素

问题描述

我是服务器端的人,客户端是我的))

所以......我需要在 2-3 天内构建试点版本作为我们团队的示例......我有疑问

让我们说系统用户有模块。

例如:1) 模块电子商务 2) 模块消息

ETC...

在用户界面中

(更新) _Layout.cshtml

导航面板简单的 ui/li 元素...如果用户有声明消息 - 显示(呈现)消息菜单项,我想要如果没有 - 不显示(不将此项目呈现到 HTML DOM。

现在我的代码看起来像:

@{
                    var claimsIdentity = User.Identity as System.Security.Claims.ClaimsIdentity;

                    if(claimsIdentity != null)
                    {
                        var c = claimsIdentity.FindFirst("Modules");

                        if(c != null && c.Value == "MESSAGES")
                        {
                            <li>
                                <a href="#"><i class="fa fa-lg fa-fw fa-puzzle-piece"></i> <span class="menu-item-parent">Messages</span></a>
                                <ul>
                                    <li>
                                        <a href="inbox.html"><i class="fa fa-file-text-o"></i>Inbox</a>
                                    </li>
                                    <li>
                                        <a href="Sent.html"><i class="fa fa-paragraph"></i>Sent emails</a>
                                    </li>

                                </ul>
                            </li>
                        }
                    }
                }

这段代码工作......但是......

1) 因为我不是每天都为 UI 编写代码,所以我不知道这是否是使用 DOM 操作的最佳实践?

2) 对我来说它看起来很脏........或者这对于 Asp MVC 项目来说是正常的吗?

也许更好地写一些统计转换器.....或者声称不是检查模块的最佳方法?

谢谢你。

标签: asp.net-mvcasp.net-core-mvc

解决方案


推荐阅读