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>

指导我在 MVC RAZOR 中实现此类编程逻辑的最佳方式

谢谢

@保罗

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 回答