2010-12-29 28 views
12

Tôi cố gắng để nâng cấp một ứng dụng ASP.NET để NET 4, nhưng một trang trên trang web của tôi chứa một ngoại lệ:"Một mục với cùng khóa đã tồn tại" xuất hiện khi biên soạn dưới NET 4

Đối số ngoại lệ: một mục với cùng khóa đã tồn tại"

là gì khác nhau về ASP.NET 4 mà có thể gây ra vấn đề này

enter image description here

.? 210

Một giải pháp

Không chắc chắn tại sao nhưng thiết clientIDMode="Predictable" hơn Static dường như đã tránh được thông điệp ngoại lệ này.

+0

đâu các lỗi xảy ra? Gỡ lỗi mã của bạn và hiển thị cho chúng tôi mã nguồn có liên quan. –

+0

Đối với tôi, có vẻ như ngoại lệ được ném từ Từ điển hoặc bộ sưu tập tương tự ... –

+0

nếu sự cố vẫn tồn tại, vui lòng đăng mã và theo dõi ngăn xếp đầy đủ của lỗi. –

Trả lời

7

Tôi đã gặp sự cố tương tự và đã khắc phục sự cố đó.

Tôi đã đi qua toàn bộ trang ASPX của mình và tìm thấy điều khiển ASP.NET có cùng ID với nhau.

Tôi cũng đã thử nghiệm bản sửa lỗi này và nhận thấy rằng mọi kiểm soát xung đột với một điều khiển khác trên trang sẽ gây ra lỗi này.

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

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

Điều này xảy ra khi bạn sao chép/dán các phần tử trên cùng một trang.

+1

làm thế nào là điều này có thể! trừ khi visual studio không cho phép nó biên dịch và trỏ tới id trùng lặp. lỗi này là freaking tôi ra –

+0

@imanabidi khi bạn sao chép/dán trong VS đôi khi nó thay đổi ID, thời gian khác, nó không. Bạn cần phải kiểm tra để đảm bảo mỗi phần tử trên trang có một ID duy nhất. –

+0

nhưng trong VS 2012 nó chỉ không cho phép tôi làm điều đó ngay cả với sao chép/dán.however vấn đề của tôi đã được thiết lập nhiều tài sản Items'Selected bằng đúng trong các mục DropDownList Bộ sưu tập –

0

này trong web.config của bạn cũng có thể gây ra lỗi bằng cách cho phép ID trùng lặp

<pages clientIDMode="Static"> 
0

Tôi có lỗi này quá và không giải quyết được với điều này

<pages clientIDMode="Static">

của tôi datagrid hoạt động tốt:

Tôi có lưới view:

<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> 

nhưng sau khi add image lĩnh vực tôi thấy lỗi này

 <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> 
Các vấn đề liên quan