Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 17049|Atbildi: 2

[ASP.NET] System.ArgumentException: 回发或回调参数无效。在配置中使用 < pages enableEven

[Kopēt saiti]
Publicēts 21.04.2015 15:56:12 | | |
Attiecībā uz Gridview vadīklas izmantošanu tajā pašā lapā tiek konstatēts, ka serveris nevar atbildēt uz atjaunināšanas notikumu, šķiet, ka tā kļūdas trauksme un pēc tam vaicā kādu informāciju, un tagad risinājums ir apkopots šādi: Noklikšķiniet uz atjaunināšanas notikuma nevar atbildēt, jo atgriešanas vai atzvanīšanas parametrs ir nederīgs. Notikuma validācija ir iespējota konfigurācijā ar <pages enableEventValidation="true"/> vai <%@ Page EnableEventValidation="true" %> lapās. Drošības nolūkos šis līdzeklis pārbauda, vai atgriešanas vai atzvanīšanas notikumu parametri ir iegūti no servera vadīklas, kas tos sākotnēji atveidoja. Ja dati ir derīgi un paredzēti, izmantojiet Clientscrip, lai noņemtu metodi tManager.RegisterForEventValidation, lai reģistrētu atpakaļsūtīšanas vai atzvanīšanas datus validācijai.
Apraksts: pašreizējā tīmekļa pieprasījuma izpildes laikā radās neapstrādāts izņēmums. Pārbaudiet steka izsekošanas informāciju, lai iegūtu detalizētu informāciju par kļūdu un tās izcelsmi kodā, kas izraisīja kļūdu.
         Detalizēta informācija par izņēmumu: System.ArgumentException: nederīgi atgriešanas vai atzvanīšanas parametri. Notikuma validācija ir iespējota konfigurācijā ar < lapām enableEventValidation="true"/> vai <% @ Page EnableEventValidation="true" %> lapās. Drošības nolūkos šis līdzeklis pārbauda, vai atzvanīšanas vai atzvanīšanas notikuma parametri ir iegūti no servera vadīklas, kas tos sākotnēji atveidoja. Ja dati ir derīgi un paredzēti, izmantojiet Clientscrip, lai noņemtu metodi tManager.RegisterForEventValidation, lai reģistrētu atpakaļsūtīšanas vai atzvanīšanas datus validācijai.

       Pēc ilgstošas apskates es neatradu nekādu problēmu, un bija pareizi vēlreiz pārbaudīt kodu, un es pārbaudīju visu lapas vadīklu ID un atribūtus, un joprojām neatradu problēmu. Vēlāk es uzzināju, ka tas notika:

Notikuma apstākļi:
1. Ekrānā ir slēptas vadīklas.
2. Vairākas Gridview saites.

3. Ligzdots vairākās formās.
Notikuma cēloņi:
. .NET ģenerē __EVENTVALIDATION slēpto lauku pēdējā lapā, pamatojoties uz lapas izvades elementiem. Tika veikts vienkāršs tests. Izveidojiet <asp: button id="btnSubmit" runat="server" text="Submit" tooltip="Submit" /> un izveidojiet atbilstošo Click notikuma apdarinātāju. Palaidiet programmu un pareizi reaģējiet uz notikumu. Pēc tam iestatiet btnSubmit.Visable=false un manuāli pievienojiet lapā <input type="submit" name="btnSubmit" value="Submit" />. Palaidiet programmu, un tiks parādīts izņēmums ar EnableEventValidation saturu. Iestatiet <@Page EnableEventValidation="false", > vēlreiz palaistu programmu, lai pareizi reaģētu uz notikumu. Novērojot abu __EVENTVALIDATION saturu pirms un pēc, var konstatēt, ka tie ir atšķirīgi. Attiecībā uz izņēmumu, kas rodas, var uzskatīt, ka btnSubmit nav iekļauts izvadē, bet, kad tas tiek iesniegts fonā, ir atbilstošs saturs, kas ir nekonsekvents, tāpēc notikumu pārbaudes gadījumā ir iespējots. .NET rada izņēmumu.

1. risinājums:
Page_Load(objekta sūtītājs, EventArgs e)
{
    ja (! Page.IsPostBack)
    {
        saistīt datus;
    }
}
2. risinājums:
<pages enableEventValidation="false"/>

1. Pievienojiet EnableEventValidation="false" lapas <%@ Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> lapas. (Pirmkārt)

2. Dodieties caur web.config
<sistēma.tīmeklis>
<pages enableEventValidation="false"/>

3. Tā ir veidlapas ligzdošana, lapai var būt tikai viena veidlapa, ko var atrisināt, rūpīgi pārbaudot kodu.

4. Ja lapā ir tādas vadīklas kā DropDownList vai ListBox, to var izraisīt šādi iemesli:

4.1 Ajax izmantošana nolaižamajā izvēlnē parasti ir atrodama provinces un pilsētas saiknes izvēlnē, kas var būt saistīts ar to, ka nolaižamās izvēlnes sākotnējā vienuma vērtība tiek piešķirta aspx lapai, un kļūda tiek parādīta, kad notikums tiek publicēts, un nolaižamās izvēlnes sākotnējā vienuma vērtība tiek izdzēsta, un vienuma vienums tiek pievienots saistītajam notikumam.
4.2. Iemesls ir tāds, ka vadīklas ListItem rekvizīts Value satur ķīniešu valodas rakstzīmes. Vienkārši nomainiet vērtību uz angļu valodu vai skaitli. Vislabāk ir pievienot šādu paziņojumu web.config:
<globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="zh-CN" uiCulture="zh-CN"/> Tā kā POSTBACK nav kodēts UTF-8, JAVAscrip t noņemšana tiks uzskatīta par problemātisku.
Vienkārši nomainiet requestEncoding="utf-8" uz to, bet responseEncoding="utf-8" to nedara

5. Reģistrējieties pasākuma apstiprināšanai
Princips ir ļaut asp.net ierakstīt šo atgriešanas vērtību.
Renderēšanas laikā ir jāizsauc RegisterForEventValidation.






Iepriekšējo:Tianhe-2 tika aizliegts iegādāties iekšējos lietotājus: Amerikas Savienotās Valstis ir greizsirdīgas par Ķīnas superskaitļošanas jaudu
Nākamo:Profesionalitāte "Karjeras plāna veidne"
 Saimnieks| Publicēts 22.04.2015 10:36:18 |
  1. <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="test1.aspx.cs" Inherits="WebApplication1.test1" enableEventValidation="false" %>
Kopēt kodu


Publicēts 22.04.2015 10:40:46 |
Es piekrītu augšstāva punktam, ka EnableEventValidation="true" validēs lokāli un patērēs CPU; EnableEventValidation="false" atgriezīs servera validāciju un atkārtoti ielādēs lapu.
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com