服务器标签格式不正确,ASP Repeater Datasource

时间:2012-06-14 18:04:54

标签: asp.net

我一直在使用消息得到解析器错误服务器标记没有很好地形成以下行。

                    <asp:Repeater runat="server" DataSource="<%# ((MultilistField)((Item)Container.DataItem).Fields["Tags"]).GetItems() %>">
                    <ItemTemplate>
                        <sc:FieldRenderer ID="FieldRenderer1" runat="server" FieldName="Tag name" Item="<%# Container.DataItem %>"/>
                    </ItemTemplate>
                    <SeparatorTemplate>
                        /
                    </SeparatorTemplate>
                </asp:Repeater>

语法看起来不错,但我不确定的一件事是你是否可以在那里使用“.Field [”tags“]元素。

我试过查找,但找不到类似的问题。我希望有人能为我解释为什么解析器抱怨这一行。

由于

4 个答案:

答案 0 :(得分:12)

现在我想到的是改为使用单引号字符串:

<asp:Repeater runat="server" DataSource='<%# ((MultilistField)((Item)Container.DataItem).Fields["Tags"]).GetItems() %>' >

答案 1 :(得分:3)

属性中有双引号。这会使解析器混淆 - 它无法分辨属性的结束位置。

用单引号包装属性以修复它:

DataSource='<%# ((MultilistField)((Item)Container.DataItem).Fields["Tags"]).GetItems() %>'

答案 2 :(得分:1)

尝试'而不是“它可能会起作用

否则尝试从后面的代码绑定

<asp:Repeater runat="server" DataSource='<%# ((MultilistField)((Item)Container.DataItem).Fields["Tags"]).GetItems() %>' >

答案 3 :(得分:0)

你有结束标签吗?即。

</asp:Repeater>

否则您错过了标签声明末尾的/。

<asp:Repeater runat="server" DataSource="<%# ((MultilistField)((Item)Container.DataItem).Fields["Tags"]).GetItems() %>" />