C# 显示具有管理员角色的用户的所有项目
我正在使用C#MVC构建一个帮助台应用程序。我有一张票。在我的票证模型中,我有一个“RaisedBy”属性。我已经能够应用一些逻辑向登录用户显示他们的票据。下一步,我想向角色为“admin”的用户显示所有票据 我已经创建了一个foreach循环来返回所有项并将它们弹出到一个表中。以下是我在自己的观点中尝试过的: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
@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条件下分配
=
。您应该使用=
感谢您的详细回复。这已解决了我的问题。