0

对于我期望的人来说,这应该是一些简单的点,但是作为一个前端开发人员试图以零 C# 的先验知识来掌握 MVC 剃须刀,这让我很难过。

我有一个布尔变量hasSecond,我想在下面考虑foreach

@foreach (PODO_AcceptRejectReasons reason in reasonList2.Where(e => e.Type == 1))
    {
        <option data-confirm-type="1" data-confirm-attr="@reason.Attribute" value="@reason.ID">@reason.Text</option>
    }

我只想在 is 时显示值为 'SECOND' 的选项,@reason.Atrribute否则不显示这些选项。hasSecondtrue

谢谢你的帮助!

4

3 回答 3

3
@foreach (PODO_AcceptRejectReasons reason in reasonList2.Where(e => e.Type == 1))
    {
        if(hasSecond||reason.Attribute!="SECOND")
        {
            <option data-confirm-type="1" data-confirm-attr="@reason.Attribute" value="@reason.ID">@reason.Text</option>
        }
    }

应该做的伎俩。我想我之前的逻辑有点错误。这将显示所有options where reason.Attributeis not SECOND。如果 SECOND,它只会显示option如果hasSecond为真。

于 2013-03-01T09:21:28.167 回答
1

只需将其添加到 Where 语句中:

@foreach (PODO_AcceptRejectReasons reason in reasonList2.Where(e => e.Type == 1 && hasSecond))
    {
        <option data-confirm-type="1" data-confirm-attr="@reason.Attribute"   value="@reason.ID">@reason.Text</option>
    }
于 2013-03-01T09:21:59.500 回答
0

您可以通过以下方式执行此操作,只需在 foreach 循环中放置一条 if 语句并在 where 中添加另一个子句。

@foreach (PODO_AcceptRejectReasons reason in reasonList2.Where(e => e.Type == 1 && e.Attribute=="SECOND"))
{
    if(hasSecond)
    {
        <option data-confirm-type="1" data-confirm-attr="@reason.Attribute" value="@reason.ID">@reason.Text</option>
    }
}

如果您只想data-confirm-attr="@reason.Attribute"删除 ifhasSecond为 false,则可以使用以下命令:

@foreach (PODO_AcceptRejectReasons reason in reasonList2.Where(e => e.Type == 1))
{
    <option data-confirm-type="1" @if(hasSecond) { <text>data-confirm-attr="@reason.Attribute"</text> } value="@reason.ID">@reason.Text</option>
}
于 2013-03-01T09:19:40.987 回答