0

条件が真かどうかに基づいて行の背景色を変更したい。私は以下を試しましたが、構文が好きではありません。私はいくつかの異なる方法を試しましたが、どれも好きではありません

@<tr class="@if (item.ActualDeliveries <> item.ExpectedDeliveries ) 
             then string.empty 
             else "style=background-color:Yellow" 
            End if)"> 

これは私が得るエラーです:

「If」ブロックが終了していません。すべての「If」ブロック ステートメントは、対応する「End If」で終了する必要があります。string.empty は、「構文エラー」と表示されている else ステートメントのメソッドではありません

- 更新しました

次のステートメントを使用しても、かみそりは何も出力しません。ただし、「</tr>」終了タグの後に「end if」を使用すると機能します。

If True Then
    @:<tr>
    End If
        <td>
            @Html.DisplayFor(Function(modelItem) currentItem.StartDate)
        </td>

        <td>
            @Html.ActionLink("Edit", "Edit", New With {.id = currentItem.ID})
        </td>
    </tr>
4

2 に答える 2

1

これを試して:

<tr class="@(If(item.ActualDeliveries = item.ExpectedDeliveries, "style=background-color:Yellow;", String.Empty))"
于 2013-07-16T14:17:53.833 に答える
1

タグ自体の中で Razor を解析しようとする代わりに、次のようなことを試してください。

@If item.ActualDeliveries <> item.ExpectedDeliveries Then
<tr>
Else
<tr style="background-color:yellow"> 
End If

デザイナーから警告が表示される場合がありますが、無視してかまいません。実行時に正しい HTML が生成されます。また、実際にコンパイルされた場合、そのままのマークアップは次のようなものを作成します。

<tr class="style=background-color:yellow"> 

これは明らかに間違っています。

于 2013-05-16T03:17:05.363 に答える