html.raw未进行渲染

本文关键字:raw html | 更新日期: 2023-09-27 18:03:13

我正在尝试使用下面的代码修改表行的背景色。然而,我遇到了一个语法分析器错误,因为关闭的tr标记没有匹配的打开的tr。我尝试使用@:而不是@Html.Raw(…(,但我遇到了同样的错误。如果我在条件块之外键入tr标记,它将呈现单个标记,并且表加载良好(只是没有交替的背景色(。

<table>
    <tr>
        <th>Count</th>
        <th>Username</th>
    </tr>
 @foreach (var item in Model)
    {
        i++;
        if (i % 2 == 0){
            @Html.Raw("<tr>");
        }
        else{
            @Html.Raw("<tr style='"background-color: #c9c9c9'">");
        }
        <td>@i.ToString()</td>
        <td>
            @Html.DisplayFor(modelItem => item.User)
        </td>
    </tr>
    }
</table>

html.raw未进行渲染

这些地方不需要@Html.Raw

只需将标签保留为<tr>

更新。。。添加您的代码

<table>
    <tr>
        <th>Count</th>
        <th>Username</th>
    </tr>
 @foreach (var item in Model)
    {
        i++;
        if (i % 2 == 0){
            <tr>
        }
        else{
          <tr style='background-color: #c9c9c9'>
        }
        <td>@i.ToString()</td>
        <td>
            @Html.DisplayFor(modelItem => item.User)
        </td>
    </tr>
    }
</table>

改为执行此操作。

<table>
    <tr>
        <th>Count</th>
        <th>Username</th>
    </tr>
    @foreach (var item in Model)
    {
        string backColor;
        i++;
        if (i % 2 == 0) {
            backColor = "whatever this color should be";
        }
        else {
            backColor = "#c9c9c9";
        }
    <tr style="background-color: @backColor">
        <td>@i.ToString()</td>
        <td>
            @Html.DisplayFor(modelItem => item.User)
        </td>
    </tr>
    }
</table>