0

次のコード行の何が問題になっていますか?

 <table>
        @{
            string subGroup = "";

            foreach (var item in Model)
            {

                if (item.SubGroupName != subGroup)
                {
                    subGroup = item.SubGroupName;
            <tr style="background-color: #C1E0FF; text-align: left">
                <td colspan="2">
                    @item.SubGroupName;
                </td>
            </tr>
                }
            <tr>
                <td>
                    @Html.DisplayFor(modelItem => item.configurationitemkey)
                </td>
            <td>
                if (item.IsBoolean)
                @Html.DisplayFor(modelItem => item.IsAvailable)
                else
                @Html.DisplayFor(modelItem => item.ConfigurationItemValue)
            </td>

            </tr>
            }
        }
    </table>

次のコード行は、@{}内にある場合でもテストとしてレンダリングされます

<td>
    if (item.IsBoolean)
    @Html.DisplayFor(modelItem => item.IsAvailable)
    else
    @Html.DisplayFor(modelItem => item.ConfigurationItemValue)
</td>

このタイプのプログラミングロジックをMVCRAZORに実装するための最良の方法を教えてください

ありがとう

@ポール

4

1 に答える 1

0

それらの前にタグを付けてみましたか?@それらの前のタグは<td>、Razorパーサーがサーバー側のコードではなくHTMLコンテキストに戻ったことを意味します。

@{
    string subGroup = "";
}

<table>
    @foreach (var item in Model)
    {
        if (item.SubGroupName != subGroup)
        {
            subGroup = item.SubGroupName;
        }
        <tr style="background-color: #C1E0FF; text-align: left">
            <td colspan="2">
                @item.SubGroupName;
            </td>
        </tr>

        <tr>
            <td>
                @Html.DisplayFor(modelItem => item.configurationitemkey)
            </td>
            <td>
                @if (item.IsBoolean)
                {
                    @Html.DisplayFor(modelItem => item.IsAvailable)
                }
                else
                {
                    @Html.DisplayFor(modelItem => item.ConfigurationItemValue)
                }
            </td>
        </tr>
    }
</table>

備考:あなたが示した例subGroupでは、コードのどこにも変数を使用していないようですが、おそらくそれは実際のコードの単純化されたバージョンであり、必要になる可能性があるため、とにかくそれを含めています。

于 2012-06-30T09:24:07.420 に答える