首页 > 解决方案 > foreach(项目中的变量)和排除

问题描述

小问题,

我的 c# mvc 项目代码中有以下内容:

div class="card-body">
                @if (User.IsInRole("Secretaris"))
                {
                <table class="table">
                    <tr>
                        <th>@Html.DisplayNameFor(model => model.FirstName)</th>
                    </tr>
                    @foreach (var item in Model)
                    {
                        if (User.IsInRole("Secretaris"))
                        {
                            <tr>
                                <td>@Html.DisplayFor(modelitem => item.FirstName)</td>
                            </tr>
                        }
                    }

                </table>
                }
            </div>

当我运行代码时,一切正常,但是当我进入 foreach 时,它仍然给出所有名称,而不仅仅是具有“Secretaris”角色的名称。希望有人可以帮助我解决我做错的事情。

提前致谢。

罗尔·克尼彭

标签: c#asp.netasp.net-mvcfor-looprazor

解决方案


由于您Model有一个.Firstname属性,我假设您的模型代表一个人,可能是一个用户。

@User代表当前登录的用户 - 不是您模型中的用户。如果您想在模型中使用用户/权限,则需要在模型中包含角色信息。就像是

if (modelItem.Roles.Contains("Sec...")) { }

推荐阅读