为什么Razor解析器抱怨标签被打开?

时间:2013-09-17 15:53:00

标签: c# razor

这是说我需要正确关闭我的div标签。但它们是正确地打开和关闭的,除非我在这里完全遗漏了一些东西。

有谁熟悉我可能会收到此错误的原因?

<div id="attachments" class="popoversample">
    <h3>
        Attachments</h3>
    <div class="peoplelist">
        @foreach (var item in Model.documents)
        {
            <div class="peoplewrapper">
                <div class="thumb">
                    <img src="../../Images/thumbs/doc.png" alt="" /></div>
                <div class="peopleinfo">
                    <h4>
                        <a href="~/Documents/@Html.DisplayFor(modelItem => item.path)" target="_blank">
                    </h4>
                    <img src="../../Images/thumbs/doc.png" alt="" /></a> <span class="filename">@item.filename</span>

                    <ul>
                        <li><span>Followers:</span> 10 &nbsp;/&nbsp; <span>Following:</span> 21</li>
                        <li><span>Member:</span> April 2011</li>
                        <li><span>Skype:</span> johndoe</li>
                        <li><span>Phone:</span> +44033 0400 332</li>
                        <li><span>Address:</span> Something St., Some City, Place 4023</li>
                    </ul>

                </div>
            </div>
            <!--peoplewrapper-->
            }
    </div>
</div>

错误:分析器错误消息:遇到结束标记“div”,没有匹配的开始标记。您的开始/结束标签是否正确平衡?

4 个答案:

答案 0 :(得分:3)

修复你的HTML,这里有一个错误; h4不应该在锚的中间结束。

<a href="~/Documents/@Html.DisplayFor(modelItem => item.path)" target="_blank">
                    </h4>
                    <img src="../../Images/thumbs/doc.png" alt="" /></a> 

答案 1 :(得分:2)

看起来这个<a>标记可能会导致问题。

<a href="~/Documents/@Html.DisplayFor(modelItem => item.path)" target="_blank">

我认为结束</h4>应该向下移动到图像/范围下方的一行并关闭</a>标记

答案 2 :(得分:1)

在ASP.NET中,您可以在块内打开一个标记,并且在打开一个标记之前也必须将其关闭。

您的代码似乎没有错误!但是你需要记住,在开始新的事情之前,你需要关闭div或服务器端语言。

否则可能会弹出此错误。现在问题出在peopleWrapper

存在的另一个错误是。你可以看到这个:

<h4>
 <a href="~/Documents/@Html.DisplayFor(modelItem => item.path)" target="_blank">
</h4>
 <img src="../../Images/thumbs/doc.png" alt="" /></a> 

您正在关闭<h4>块,但在关闭<a>之前关闭它。您应该检查那里的所有链接或代码。问题可能是关闭任何标签的开放。

答案 3 :(得分:1)

真正的问题在于(简化版本以突出显示结构):

<h4>
    <a>
</h4>
<img /></a>

由于<a>关闭的位置,h4标记未正确关闭。也许你的意思是:

<h4>
    <a href="~/Documents/@Html.DisplayFor(modelItem => item.path)" target="_blank">
        <img src="../../Images/thumbs/doc.png" alt="" />
        <span class="filename">@item.filename</span>
    </a>
</h4>