在.NET 4下编译时出现“具有相同密钥的条目已存在”

时间:2010-12-29 12:39:35

标签: asp.net .net-4.0 asp.net-4.0

我正在尝试将ASP.NET应用程序升级到.NET 4,但我网站上的一个页面包含一个例外:

  

参数异常:已存在具有相同密钥的条目“。

可能导致此问题的ASP.NET 4有何不同?

enter image description here

一个解决方案

不确定原因,但设置clientIDMode="Predictable"而不是Static似乎已避免此异常消息。

3 个答案:

答案 0 :(得分:7)

我遇到了同样的问题并修复了它。

我浏览了整个ASPX页面,发现ASP.NET控件的ID与另一个相同。

我还测试了此修复程序,发现任何与页面上另一个控件冲突的控件都会导致此错误。

<asp:Label ID="FailureText" runat="server" EnableViewState="False" ClientIDMode="Static" />

<asp:Label ID="FailureText" runat="server" EnableViewState="False" ClientIDMode="Static" />

当您在同一页面上复制/粘贴元素时会发生这种情况。

答案 1 :(得分:0)

这在您的web.config中也可能通过允许重复ID

导致错误
<pages clientIDMode="Static">

答案 2 :(得分:0)

我也有这个错误,不能解决这个问题

  

<pages clientIDMode="Static">

我的datagrid正常工作:

我有gridview:

 <asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="ID" DataSourceID="SqlDataSource1">
                    <Columns>
                        <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" ButtonType="Button" CancelText="لغو" DeleteText="حذف" EditText="ويرايش" UpdateText="بروزرساني">
                            <ControlStyle CssClass="btn btn-xs btn-default" />
                            <ItemStyle Width="143px" />
                        </asp:CommandField>



                        <asp:BoundField DataField="ID" HeaderText="#" InsertVisible="False" ReadOnly="True" SortExpression="ID" />
                        <asp:BoundField DataField="Title" HeaderText="عنوان" SortExpression="Title" />
                        <asp:BoundField DataField="ParentID" HeaderText="پدر" SortExpression="ParentID" />
                        <asp:BoundField DataField="Url" HeaderText="آدرس" SortExpression="Url">
                            <ItemStyle CssClass="ltr"></ItemStyle>
                        </asp:BoundField>

                        <asp:BoundField DataField="Icon" HeaderText="آيکون" SortExpression="Icon" />

                        <asp:BoundField DataField="Order" HeaderText="اولويت" SortExpression="Order" />

                    </Columns>
                </asp:GridView>

但添加图片字段后,我看到此错误

      <asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="ID" DataSourceID="SqlDataSource1">
                    <Columns>
                        <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" ButtonType="Button" CancelText="لغو" DeleteText="حذف" EditText="ويرايش" UpdateText="بروزرساني">
                            <ControlStyle CssClass="btn btn-xs btn-default" />
                            <ItemStyle Width="143px" />
                        </asp:CommandField>


                        <asp:ImageField  ReadOnly="true"  SortExpression="Icon" DataImageUrlField="icon">
                        </asp:ImageField>

                        <asp:BoundField DataField="ID" HeaderText="#" InsertVisible="False" ReadOnly="True" SortExpression="ID" />
                        <asp:BoundField DataField="Title" HeaderText="عنوان" SortExpression="Title" />
                        <asp:BoundField DataField="ParentID" HeaderText="پدر" SortExpression="ParentID" />
                        <asp:BoundField DataField="Url" HeaderText="آدرس" SortExpression="Url">
                            <ItemStyle CssClass="ltr"></ItemStyle>
                        </asp:BoundField>

                        <asp:BoundField DataField="Icon" HeaderText="آيکون" SortExpression="Icon" />

                        <asp:BoundField DataField="Order" HeaderText="اولويت" SortExpression="Order" />

                    </Columns>
                </asp:GridView>