首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >显示具有管理角色的用户的所有项

显示具有管理角色的用户的所有项
EN

Stack Overflow用户
提问于 2019-10-19 11:08:02
回答 2查看 193关注 0票数 1

我正在使用C# MVC构建一个帮助桌面应用程序。我有一张“票”视图。在我的票务模型中,我有一个“RaisedBy”属性。我已经能够应用一些逻辑来显示登录用户的票证。下一步,我想给一个角色“admin”的用户展示所有的门票

我创建了一个foreach循环来返回所有项并将它们弹出到一个表中。以下是我在自己的视野中所尝试过的:

代码语言:javascript
复制
@foreach (var item in Model) {
if (item.RaisedBy == User.Identity.Name) { 
    if(item.RaisedBy == User.IsInRole ="Admin")

这给了我一个错误:

代码语言:javascript
复制
Operator '==' cannot be applied to operands of type 'string' and 'method-group'

我也试过:

代码语言:javascript
复制
@foreach (var item in Model) {
{
    if (item.RaisedBy = User.IsInRole("Admin")  { 

这意味着:

代码语言:javascript
复制
Cannot implicitly convert type 'bool' to 'string'

我对C#不是很有经验,所以任何建议或建议都会很感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-10-19 11:22:10

User.IsInRole对当前登录的用户进行操作,这是一种方法。它返回一个bool

您在这里使用了错误的语法:if (item.RaisedBy = User.IsInRole("Admin"))。应该是if (User.IsInRole("Admin"))

确认item.RaisedBy与当前用户匹配后,只需检查当前用户是否具有管理角色。

代码语言:javascript
复制
@foreach (var item in Model) 
{
    // if item.RaisedBy is current user
    if (item.RaisedBy == User.Identity.Name)
    { 
        // if current user is in "admin" role
        if(User.IsInRole("Admin"))
        {
        }
    }
}
票数 1
EN

Stack Overflow用户

发布于 2019-10-19 11:18:21

,您没有使用等式比较==。通过使用=,您可以将并列变量赋值到左边。

您的循环应该是:

代码语言:javascript
复制
@foreach (var item in Model) {
if (item.RaisedBy == User.Identity.Name) { 
    if (User.IsInRole("Admin"))
        // Other code..
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58463040

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档