如何解决Sharepoint上的“服务器标签格式不正确。”错误?

时间:2010-04-30 16:16:07

标签: sharepoint wss-3.0

我正在尝试编辑旧版wss3 sharepoint网站。

乱用700多个代码行aspx页面我得到了“服务器标签形成不好”。 sharepoint上的错误和?content = 1技巧不起作用。

任何人都有关于如何到达引起问题的线路的提示? 我期待像aspnet ysod这样的东西,至少那是有用的。

如果它值得,我可以访问实际的服务器。

更新:我知道这个错误是因为我搞砸了标记,正如ArenB友好指出的那样。我想要的是,提示 700行上的是错误的。

更新2:我找到了一个workarround并将其作为答案发布,但问题仍然存在,等待某人就如何获取更具描述性的错误消息给出答案。

4 个答案:

答案 0 :(得分:7)

在Visual Studio的页面上执行ctrl+k,d应该可以近似显示错误的位置。快捷方式尝试为您格式化aspx页面,如果格式化失败,它会通过指向您发现有问题的行来告诉您原因。

答案 1 :(得分:3)

服务器标记格式不正确表示您的标记错误。即:

<asp:Label id="myLabel" runat="server"
    Stuff!
</asp:Label>

注意标记顶部缺少>

另一种可能发生的方式是,如果您打算制作已终止的代码<tag />,但忘记了/,这会留下您丢失的结束标记。


  • 至于定位线,使用diff机制查看修改过的线,并尝试查明坏标记。
  • 或者您可以在代码上运行xml验证器,尽管asp可能会使用vanilla xml验证器变得古怪。

答案 2 :(得分:2)

由于@Aren的回答,我解决了我的问题。我的xml很好,差不多。您无法在"..."内使用" "。您必须切换到'

我写道:

<asp:Repeater ID="LeadersBlock" runat="server" Visible="false">
    <ItemTemplate>
        <asp:Literal Text="<%# Eval("Employee") %>" />
    </ItemTemplate>
</asp:Repeater>

而不是:

<asp:Repeater ID="LeadersBlock" runat="server" Visible="false">
    <ItemTemplate>
        <asp:Literal Text='<%# Eval("Employee") %>' />
    </ItemTemplate>
</asp:Repeater>

我希望它可以节省别人的时间。

答案 3 :(得分:1)

好的,我想出了一个可能对某人有用的手动方式,但它也不理想。

首先,抓取aspx页面的代码并将其粘贴到另一个文件(作为备份)。 然后,按WebPart删除WebPart,然后WebPartZones,然后删除任何其他可能的服务器端标记,直到页面停止中断。 这样,您至少可以知道错误的位置。

对我来说,这次是一个WebPartZone,它有两个属性,两个属性之间没有空格。这种错误可能非常棘手。

我再也不会在aspx sharepoint页面上做这个疯狂的野蛮人黑客了。