C# 显示具有管理员角色的用户的所有项目

C# 显示具有管理员角色的用户的所有项目,c#,asp.net-mvc,C#,Asp.net Mvc,我正在使用C#MVC构建一个帮助台应用程序。我有一张票。在我的票证模型中,我有一个“RaisedBy”属性。我已经能够应用一些逻辑向登录用户显示他们的票据。下一步,我想向角色为“admin”的用户显示所有票据 我已经创建了一个foreach循环来返回所有项并将它们弹出到一个表中。以下是我在自己的观点中尝试过的: @foreach (var item in Model) { if (item.RaisedBy == User.Identity.Name) { if(item.Raised

我正在使用C#MVC构建一个帮助台应用程序。我有一张票。在我的票证模型中,我有一个“RaisedBy”属性。我已经能够应用一些逻辑向登录用户显示他们的票据。下一步,我想向角色为“admin”的用户显示所有票据

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

@foreach (var item in Model) {
if (item.RaisedBy == User.Identity.Name) { 
    if(item.RaisedBy == User.IsInRole ="Admin")
这给了我一个错误:

Operator '==' cannot be applied to operands of type 'string' and 'method-group'
我也试过:

@foreach (var item in Model) {
{
    if (item.RaisedBy = User.IsInRole("Admin")  { 
其中:

Cannot implicitly convert type 'bool' to 'string'
我对C#不是很有经验,所以任何建议都非常感谢

您没有使用相等比较
==
。通过使用
=
将右变量赋值给左变量

您的循环应该是:

@foreach(模型中的变量项){
如果(item.RaisedBy==User.Identity.Name){
if(User.IsInRole(“Admin”))
//其他代码。。

用户。IsInRole
作用于当前登录的用户,它是一种方法。它返回一个
bool

您在此处使用了错误的语法:
if(item.RaisedBy=User.IsInRole(“Admin”))
。它应该是
if(User.IsInRole(“Admin”)

一旦确认
项.RaisedBy
与当前用户匹配,则只需检查当前用户是否具有管理员角色

@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"))
        {
        }
    }
}

很抱歉,您无法在if条件下分配
=
。您应该使用
=
感谢您的详细回复。这已解决了我的问题。