我想在我的索引页中创建一个操作链接,当 2 个语句不在我的"毕业状态"列中时。当"毕业状态"为"毕业"和"通过"时,我想有一个链接重定向到群组订阅控制器的编辑页面
<td>@{
if (modelItem => item.GraduationStatus != "Graduated" && item.GraduationStatus != "Pass")
{
@Html.ActionLink(item.GraduationStatus, "Edit", new { id = item.GraduationStatus });
}
}
</td>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.RegistrationId)
</td>
<td>
@Html.DisplayFor(modelItem => item.Registrations.FullName)
</td>
@*<td>@{
//var graduationStatus = db.CohortSubscriptions.Where(x => x.GraduationStatus != "GraduationStatus" && x.GraduationStatus != "Pass" );
if (modelItem => item.GraduationStatus != "Graduated" && item.GraduationStatus != "Pass")
{
@Html.ActionLink(item.GraduationStatus, "Edit", new { id = item.GraduationStatus });
}
}
</td>*@
@if (User.IsInRole("Administrator"))
{
<td>
@Html.ActionLink(@Resource.Profile, "Details", new { id = item.ID }) |
@if (User.IsInRole("Administrator"))
{
@Html.ActionLink(Resource.Edit, "Edit", new { id = item.ID })
}
</td>
}
</tr>
}
这是错误:"无法将 lambda 表达式转换为类型"bool",因为它不是委托类型">
尝试更改
if (modelItem => item.GraduationStatus != "Graduated" && item.GraduationStatus != "Pass")
自
if (item.GraduationStatus != "Graduated" && item.GraduationStatus != "Pass")
@Html.DisplayFor()
需要一个函数作为第一个参数,所以这就是为什么你在那里有那个lambda表达式。 对于所有 Razorpage Html 帮助程序来说,执行(modelItem => item.property)
并不典型。 在if
语句中,您只需要这两个属性并返回布尔值(true
或false
(。
就像您稍后在 Razor 视图中拥有的一样:
@if (User.IsInRole("Administrator"))
,同样的事情也适用于这个代码块。