缺少结束标记

时间:2014-03-12 18:45:20

标签: razor asp.net-mvc-5

我的部分视图是抛出错误:

{"Encountered end tag \"tr\" with no matching start tag.  Are your start/end tags properly balanced?\r\n"}

我无法找到标签未关闭的位置。我花了很多时间试图找到错误,但无济于事。

我相对肯定它与我在视图中的代码元素有关,但我无法确定它。

这是Razor视图。

@{
    DateTime dateValue;
}

<div class="table-responsive">
    <input type="checkbox" class="checkallMaster" />
    <table id="reportTable" class="table table-hover table-condensed table-striped">
        <thead>
            <tr>
                <th style="text-align: left;">Variable Investment Option</th>
                <th>Unit Value<br /><span style="font-weight: normal;">@Model.Start.ToString("dddd, M/d/yyyy")</span></th>
                <th>Start Date</th>
                <th>Select Values<br />To Download<br /><input type="checkbox"  /></th>
            </tr>
        </thead>
        <tbody>
            @foreach (System.Data.DataRow row in Model.Output.Rows)
            {
                <tr>
                    <td align="left">@row.ItemArray[1].ToString();</td>
                    <td align="right" width="50px;">@row.ItemArray[2].ToString();</div></td>
                    <td align="center">
                    if (DateTime.TryParse(row.ItemArray[3].ToString(), out dateValue))
                    {
                        @Html.Raw(dateValue.ToString("M/d/yyyy"));
                    }
                    else
                    {
                        @Html.Raw("N/A");
                    }
                    </td>
                    <td align="center"><input type="checkbox" name="FundCodes" value="@row.ItemArray[0].ToString()" class="checkall" /> </td>
                </tr>
            }
        </tbody>
    </table>
</div>

1 个答案:

答案 0 :(得分:4)

您正在div中间关闭td

<td align="right" width="50px;">@row.ItemArray[2].ToString();</div></td>

这将尝试关闭包含整个表的div,这意味着表结构从div中流出。此后的任何内容都将是未定义的,基本上是标记错误。

另请注意,您不需要使用分号来终止Razor语法语句。我想这些实际上会以半冒号的形式呈现给浏览器,你可能不想要它。