Bezüglich der Verwendung der Gridview-Steuerung auf derselben Seite stellt sich heraus, dass das Aktualisierungsereignis vom Server nicht beantwortet werden kann, es scheint, als würde es einen Fehleralarm sein, der dann einige Informationen abfragt, und nun wird die Lösung wie folgt zusammengefasst: Klicken Sie auf das Aktualisierungsereignis kann nicht antworten, da der Postback- oder Callback-Parameter ungültig ist. Die Ereignisvalidierung ist in der Konfiguration mit <pages enableEventValidation="true"/> oder <%@ Page EnableEventValidation="true" %> auf Seiten aktiviert. Aus Sicherheitsgründen überprüft diese Funktion, dass die Parameter der Postback- oder Callback-Ereignisse von der Serversteuerung stammen, die sie ursprünglich gerendert hat. Wenn die Daten gültig und erwartet werden, verwenden Sie das Clientscrip, um die tManager.RegisterForEventValidation Methode zu entfernen, um eine Postback- oder Callback-Daten zur Validierung zu registrieren.
Beschreibung: Während der Ausführung der aktuellen Webanfrage trat eine unbearbeitete Ausnahme auf. Überprüfen Sie die Stack-Trace-Informationen auf Details zu dem Fehler und woher er in Ihrem Code, der den Fehler verursacht hat.
Ausnahmedetails: System.ArgumentException: Ungültige Postback- oder Callback-Parameter. Ereignisvalidierung ist in der Konfiguration mit < Seiten aktiviert: enableEventValidation="true"/> oder <% @ Page EnableEventValidation="true" %> auf Seiten. Aus Sicherheitsgründen überprüft diese Funktion, dass die Parameter des Postback- oder Callback-Ereignisses von der Serversteuerung stammen, die sie ursprünglich gerendert hat. Wenn die Daten gültig und erwartet werden, verwenden Sie das Clientscrip, um die tManager.RegisterForEventValidation Methode zu entfernen, um eine Postback- oder Callback-Daten zur Validierung zu registrieren. Nach langer Untersuchung habe ich kein Problem gefunden, und es war korrekt, den Code erneut zu überprüfen, und ich habe die IDs und Attribute aller Steuerungen auf der Seite überprüft und das Problem immer noch nicht gefunden. Später fand ich heraus, dass Folgendes passiert ist: Auftretensbedingungen: 1. Es gibt versteckte Steuerungen auf dem Bildschirm. 2. Mehrere Gridview-Bindungen. 3. In mehreren Formen verschachtelt. Ursachen des Auftretens: . .NET erzeugt ein __EVENTVALIDATION verstecktes Feld auf der finalen Seite basierend auf den Ausgabeelementen der Seite. Ein einfacher Test wurde durchgeführt. Erstellen Sie ein <asp: button id="btnSubmit" runat="server" text="Submit" Tooltip="Submit" /> und erstellen Sie den entsprechenden Click-Event-Handler. Führe das Programm aus und reagiere korrekt auf das Ereignis. Dann setze btnSubmit.Visable=false und füge manuell <Eingabetyp="submit" name="btnSubmit" value="Submit" /> auf der Seite hinzu. Führe das Programm aus, und es erscheint eine Ausnahme mit dem Inhalt EnableEventValidify. Setze <@Page EnableEventValidation="false" > führe das Programm erneut aus, um korrekt auf das Ereignis zu reagieren. Wenn man den Inhalt der beiden __EVENTVALIDATION davor und danach betrachtet, erkennt man, dass sie unterschiedlich sind. Bezüglich der Ausnahme, die auftritt, kann angenommen werden, dass btnSubmit nicht im Output enthalten ist, aber wenn es im Hintergrund eingereicht wird, gibt es entsprechende Inhalte, die inkonsistent sind, sodass im Fall der Ereignisverifikation aktiviert ist. .NET wirft eine Ausnahme.
Lösung 1: Page_Load(Objektsender, EventArgs e)
{ wenn (! Page.IsPostBack) { Daten binden; }
} Lösung 2: <pages enableEventValidation="false"/> 1. Fügen Sie EnableEventValidation="false" zur <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> der Seite hinzu. (Erstens)
2. Durchlaufe web.config <system.web> <pages enableEventValidation="false"/>
3. Es handelt sich um Formularverschachtelung, eine Seite kann nur ein Formular haben, das durch sorgfältige Überprüfung des Codes gelöst werden kann.
4. Wenn die Seite Steuerungen wie DropDownList oder ListBox enthält, kann dies durch folgende Gründe verursacht werden:
4.1 Die Verwendung von Ajax im Dropdown-Menü findet man häufig im Provinz- und Stadtverknüpfungsmenü, was daran liegen kann, dass der Anfangswert des Dropdown-Menüs der Aspx-Seite zugewiesen wird, der Fehler angezeigt wird, wenn das Ereignis gepostet wird, der Anfangswert des Dropdown-Menüs gelöscht wird und der Gegenstand zum gebundenen Ereignis hinzugefügt wird. 4.2 Der Grund ist, dass die Value-Eigenschaft des ListItem der DropDownList-Kontrolle chinesische Zeichen enthält. Ändere den Wert einfach auf Englisch oder eine Zahl. Am besten fügt man folgende Anweisung in web.config ein: <Globalization RequestEncoding="utf-8" responseEncoding="utf-8" culture="zh-CN" uiCulture="zh-CN"/> Da POSTBACK nicht in UTF-8 codiert ist, wird das Entfernen von t durch JAVAscrip als problematisch angesehen. Ändere einfach requestEncoding="utf-8" darauf, aber responseEncoding="utf-8" macht das nicht
5. Registrieren Sie sich für die Ereignisvalidierung Das Prinzip ist, asp.net diesen Postback-Wert notieren zu lassen. RegisterForEventValidation muss beim Render aufgerufen werden.
|