2010-12-29 16 views
12

Próbuję zaktualizować aplikacji ASP.NET do .NET 4, ale jedna strona na mojej stronie zawiera wyjątek:gdy skompilowany pod .NET 4

Argument Wyjątek: zapis z tego samego klawisza już istnieje”

Czym różni się o ASP.NET 4, które mogłyby spowodować ten problem

enter image description here

.? 210

One Solution

Nie wiem dlaczego, ale ustawienie clientIDMode="Predictable" zamiast Static zdaje się unikać tego komunikatu wyjątku.

+0

Skąd błąd występuje? Debuguj swój kod i pokaż nam odpowiedni kod źródłowy. –

+0

Dla mnie wygląda na to, że wyjątek jest wyrzucany ze słownika lub podobnej kolekcji ... –

+0

jeśli problem nadal występuje, proszę zaksięgować kod i pełny ślad stosu błędu. –

Odpowiedz

7

Miałem ten sam problem i naprawiłem go.

Przeszedłem przez całą moją stronę ASPX i znalazłem kontrolę ASP.NET, która miała ten sam identyfikator co inny.

Również przetestowałem tę poprawkę i okazało się, że każdy formant, który jest w konflikcie z innym elementem kontrolnym na stronie, spowoduje ten błąd.

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

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

Zdarza się to podczas kopiowania/wklejania elementów na tej samej stronie.

+1

jak to możliwe! chyba, że ​​studio graficzne nie pozwala mu się skompilować i wskazuje na duplikat id. ten błąd mnie przeraża –

+0

@imanabidi podczas kopiowania/wklejania w VS czasami zmienia ID, innym razem, nie robi. Musisz sprawdzić, czy każdy element na stronie ma unikalny identyfikator. –

+0

, ale w VS 2012 po prostu nie pozwala mi to zrobić nawet z kopiuj/wklej. Jednak moim problemem było ustawienie wielu właściwości Items'Selected równe true w DropDownList items Collection –

0

to w web.config może również powodować błąd pozwalając powielone identyfikatory

<pages clientIDMode="Static"> 
0

mam ten błąd i nie zbyt rozwiązać ten

<pages clientIDMode="Static">

mój datagrid działa dobrze:

Mam siatkę Widok:

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

ale po dodać zdjęcie pole widzę ten błąd

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