如何使动作链接与 2 语句剃刀



我想在我的索引页中创建一个操作链接,当 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语句中,您只需要这两个属性并返回布尔值(truefalse(。

就像您稍后在 Razor 视图中拥有的一样:

@if (User.IsInRole("Administrator")),同样的事情也适用于这个代码块。

最新更新