Argumento postback o callback no válido. La validación de eventos se habilita mediante


Recibo el siguiente error cuando vuelvo a publicar una página desde el lado del cliente. Tengo código JavaScript que modifica un ListBox asp: en el lado del cliente.

¿Cómo solucionamos esto?

Detalles de error a continuación:

Server Error in '/XXX' Application.

--------------------------------------------------------------------------------
Invalid postback or callback argument.  Event validation is enabled using <pages enableEventValidation="true"/> in configuration or <%@ Page EnableEventValidation="true" %> in a page.  For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them.  If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.ArgumentException: Invalid postback or callback argument.  Event validation is enabled using <pages enableEventValidation="true"/> in configuration or <%@ Page EnableEventValidation="true" %> in a page.  For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them.  If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:

[ArgumentException: Invalid postback or callback argument.  Event validation is enabled using <pages enableEventValidation="true"/> in configuration or <%@ Page EnableEventValidation="true" %> in a page.  For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them.  If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation.]
   System.Web.UI.ClientScriptManager.ValidateEvent(String uniqueId, String argument) +2132728
   System.Web.UI.Control.ValidateEvent(String uniqueID, String eventArgument) +108
   System.Web.UI.WebControls.ListBox.LoadPostData(String postDataKey, NameValueCollection postCollection) +274
   System.Web.UI.WebControls.ListBox.System.Web.UI.IPostBackDataHandler.LoadPostData(String postDataKey, NameValueCollection postCollection) +11
   System.Web.UI.Page.ProcessPostData(NameValueCollection postData, Boolean fBeforeLoad) +353
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1194

--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:2.0.50727.1433; ASP.NET Version:2.0.50727.1433
Author: Julius A , 2008-10-23

30 answers

El problema es que ASP.NET no llega a saber acerca de este listitem extra o eliminado. Tienes una serie de opciones (enumeradas a continuación):

  • Desactivar eventvalidation (mala idea, porque se pierde un poco de seguridad que vienen con muy poco costo).
  • Uso ASP.NET Ajax UpdatePanel. (Coloque el listbox en el Updatepanel y active una actualización, si agrega o elimina listbox. De esta manera viewstate y los campos relacionados obtienen actualizaciones y eventvalidation pasará.)
  • Olvidar del lado del cliente y use el postback clásico y agregue o elimine el listitems del lado del servidor.

Espero que esto ayude.

 165
Author: norbertB,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-08-07 16:07:15

¿Tiene códigos en sus eventos Page_Load? si es así, entonces tal vez agregando lo siguiente ayudará.

if (!Page.IsPostBack)
{ //do something }

Este error se lanza cuando hace clic en su comando y el Page_load se está ejecutando de nuevo, en un ciclo de vida normal será Page_Load - > Haga clic en Command - > Page_Load (de nuevo) -> Process ItemCommand Event

 173
Author: Jeff Pang,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-06-28 19:27:38

Tuve una experiencia con DataGrid. Una de sus columnas era el botón "Seleccionar". Cuando estaba haciendo clic en el botón" Seleccionar " de cualquier fila, había recibido este mensaje de error:

"Argumento postback o callback no válido. La validación de eventos está habilitada usando in configuration o en una página. Por motivos de seguridad, esta función verifica que los argumentos para postback o los eventos de devolución de llamada se originan desde el control del servidor que se renderizó originalmente ellos. Si los datos son válidos y esperados, utilice el ClientScriptManager.RegisterForEventValidation método para registrar los datos postback o callback para la validación."

Cambié varios códigos, y finalmente lo logré. Ruta de mi experiencia:

1) Cambié el atributo page a EnableEventValidation="false". Pero no funcionó. (no solo es peligroso por razones de seguridad, mi controlador de eventos no fue llamado: void Grid_SelectedIndexChanged(object sender, EventArgs e)

2) Implementé ClientScript.RegisterForEventValidation en Render método. Pero no funcionó.

protected override void Render(HtmlTextWriter writer)
{
    foreach (DataGridItem item in this.Grid.Items)
    {
        Page.ClientScript.RegisterForEventValidation(item.UniqueID);
        foreach (TableCell cell in (item as TableRow).Cells)
        {
            Page.ClientScript.RegisterForEventValidation(cell.UniqueID);
            foreach (System.Web.UI.Control control in cell.Controls)
            {
                if (control is Button)
                    Page.ClientScript.RegisterForEventValidation(control.UniqueID);
            }
        }
    }
}

3) Cambié mi tipo de botón en la columna de cuadrícula de PushButton a LinkButton. funcionó! ("ButtonType= "LinkButton"). Creo que si puedes cambiar tu botón a otros controles como "LinkButton" en otros casos, funcionaría correctamente.

 37
Author: Amir Chatrbahr,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-07-14 14:10:30

Realmente va a querer hacer 2 o 3, no deshabilite la validación de eventos.

Hay dos problemas principales al agregar elementos a un asp:listbox del lado del cliente.

  • La primera es que interfiere con la validación de eventos. Lo que regresó al servidor no es lo que envió.

  • La segunda es que incluso si deshabilita la validación de eventos, cuando su página se publique de nuevo, los elementos en el listbox se reconstruirán desde el viewstate, por lo que cualquier cambio que haya realizado en el cliente se pierden. La razón de esto es que un asp.net no espera que el contenido de un listbox se modifique en el cliente, solo espera que se realice una selección, por lo que descarta cualquier cambio que pueda haber realizado.

La mejor opción es utilizar un panel de actualización como se ha recomendado. Otra opción, si realmente necesita hacer este lado del cliente, es usar un <select> simple en lugar de un <asp:ListBox>, y mantener su lista de elementos en un campo oculto. Cuando la página renderizados en el cliente puede rellenarlo a partir de una división del contenido de su campo de texto.

Luego, cuando esté listo para publicarlo, repoblará el contenido del campo oculto de su <select> modificado. Luego, por supuesto, tiene que dividir eso nuevamente en el servidor y hacer algo con sus elementos, ya que su selección está vacía ahora que está de vuelta en el servidor.

En general, es una solución bastante engorrosa que realmente no recomendaría, pero si realmente tiene que hacer el lado del cliente modificaciones de un ListBox, funciona. Sin embargo, realmente recomendaría que busque en un UpdatePanel antes de ir por esta ruta.

 27
Author: Andy C.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-10-29 01:35:13

Tuve el mismo problema con un Repetidor porque tenía una página web con un control de Repetidor en un sitio web que tenía activado EnableEventValidation. No fue bueno. Estaba recibiendo excepciones relacionadas con postback inválidas.

Lo que funcionó para mí fue establecer EnableViewState="false" para el Repetidor. Las ventajas son que es más fácil de usar, tan simple como desactivar la validación de eventos para el sitio web o la página web, pero el alcance es mucho menor que desactivar la validación de eventos para bien.

 16
Author: Umar Farooq Khawaja,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-11-19 12:25:25

Nada de lo anterior funcionó para mí. Después de más excavación me di cuenta de que había pasado por alto 2 formularios aplicados en la página que estaba causando el problema.

<body>
<form id="form1" runat="server">
<div>
        <form action="#" method="post" class="form" role="form">
        <div>
        ...
        <asp:Button ID="submitButton" runat="server"
        </div>
</div>
</body>

Tenga en cuenta que recientemente ASP.NET ha comenzado a considerar iframes dentro de una etiqueta de formulario que contiene una etiqueta de formulario en el propio documento iframe como un marco anidado. Tuve que mover el iframe fuera de la etiqueta de formulario para evitar este error.

 14
Author: biggles,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-02-02 12:56:03

Tuve el mismo problema al modificar un ListBox usando JavaScript en el cliente. Se produce cuando se agregan nuevos elementos al ListBox desde el cliente que no estaban allí cuando se renderizó la página.

La solución que encontré es informar al sistema de validación de eventos de todos los posibles elementos válidos que se pueden agregar desde el cliente. Esto se hace anulando la página.Renderizar y llamar a la página.ClientScript.RegisterForEventValidation para cada valor que su JavaScript podría agregar a la lista recuadro:

protected override void Render(HtmlTextWriter writer)
{
    foreach (string val in allPossibleListBoxValues)
    {
        Page.ClientScript.RegisterForEventValidation(myListBox.UniqueID, val);
    }
    base.Render(writer);
}

Esto puede ser un poco molesto si tiene un gran número de valores potencialmente válidos para el list box. En mi caso estaba moviendo elementos entre dos ListBoxes - uno que tiene todos los valores posibles y otro que está inicialmente vacío pero se llena con un subconjunto de los valores del primero en JavaScript cuando el usuario hace clic en un botón. En este caso, solo necesita iterar a través de los elementos en el primer listboxy registrar cada uno con la segunda lista recuadro:

protected override void Render(HtmlTextWriter writer)
{
    foreach (ListItem i in listBoxAll.Items)
    {
        Page.ClientScript.RegisterForEventValidation(listBoxSelected.UniqueID, i.Value);
    }
    base.Render(writer);
}
 11
Author: Josh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-09-18 09:57:36

Otra forma no mencionada aquí es subclase ListBox

Ie.

public class ListBoxNoEventValidation : ListBox 
{
}

ClientEventValidation claves fuera del Sistema de atributos.Web.UI.SupportsEventValidation si lo subclases, a menos que lo agregues explícitamente, nunca llamará a la rutina de validación. Eso funciona con cualquier control, y es la única manera que he encontrado para "desactivar" en una base de control por control (es decir, no a nivel de página).

 9
Author: Mike C.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-02-28 15:56:41

3: Cambié mi tipo de botón en la cuadrícula columna de "pulsador" a "LinkButton". Funcionó! ("ButtonType=" LinkButton") Creo que si puede cambiar su botón a otro controles como "LinkButton" en otros casos, funcionaría correctamente.

Me gustaría poder votarte, Amir (por desgracia mi reputación es demasiado baja. Estaba teniendo este problema y cambiar esto funcionó como un campeón en mi gridview. Sólo un poco a un lado, creo que el código válido es: ButtonType = "Link"

Sospecho que esto se debe a que cuando haces clic en 'editar', tu edición cambia a 'actualizar' y 'cancelar', que luego vuelven a 'editar' al enviar. Y estos controles cambiantes hacen que. net se sienta incómodo.

 7
Author: brian welch,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-02-19 00:39:34

(1) EnableEventValidation="false"...................No funciona para mí.

(2) ClientScript.RegisterForEventValidation....It no funciona para mí.

Solución 1:

Cambie el botón/Botón ImageButton a LinkButton en GridView. Funciona. (Pero me gusta ImageButton)

Investigación: Botón / ImageButton y LinkButton utilizan diferentes métodos para postback

Original artículo:

Http://geekswithblogs.net/mahesh/archive/2006/06/27/83264.aspx

Solución 2:

En OnInit() , ingrese el código algo como esto para establecer un ID único para Button / ImageButton:

protected override void OnInit(EventArgs e) {
  foreach (GridViewRow grdRw in gvEvent.Rows) {

  Button deleteButton = (Button)grdRw.Cells[2].Controls[1];

  deleteButton.ID = "btnDelete_" + grdRw.RowIndex.ToString();           
  }
}

Artículo original:

Http://www.c-sharpcorner.com/Forums/Thread/35301 /

 7
Author: yilee,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-03-31 01:45:32

Si rellena la lista desplegable a través del script del lado del cliente, borre la lista antes de enviar el formulario al servidor; entonces ASP.NET no se quejará y la seguridad seguirá encendida.

Y para obtener los datos seleccionados del DDL, puede adjuntar un evento "onChange"al DDL para recopilar el valor en una entrada oculta o en un cuadro de texto con Style =" display: none; "

 6
Author: MyEname,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-12-11 20:43:00

Intenta algo así,en su .aspx page

Añadir

EnableEventValidation = "false"

No dude en hacer cualquier pregunta!

 6
Author: user3690871,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-08-18 05:46:01

Implementé una vista de cuadrícula anidada y me enfrenté al mismo problema .He usado LinkButton en lugar de image button como este:

Antes tenía una columna como esta:

<asp:TemplateField ItemStyle-Width="9">
  <ItemTemplate>
 <asp:ImageButton ID="ImgBtn" ImageUrl="Include/images/gridplus.gif" CommandName="Expand"
                        runat="server" />
  </ItemTemplate>
</asp:TemplateField>

He reemplazado así.

<asp:TemplateField>
<ItemTemplate>
     <asp:LinkButton  CommandName="Expand" ID="lnkBtn"  runat="server" ><asp:Image  ID="Img"  runat="server" ImageUrl="~/Images/app/plus.gif" /></asp:LinkButton>
      </ItemTemplate>
</asp:TemplateField> 
 5
Author: Swathi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-04-21 12:59:21

Si cambia UseSubmitBehavior="True" a UseSubmitBehavior="False" su problema se resolverá

<asp:Button ID="BtnDis" runat="server" CommandName="BtnDis" CommandArgument='<%#Eval("Id")%>' Text="Discription" CausesValidation="True" UseSubmitBehavior="False" />
 3
Author: ali joodie,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-04-21 12:38:23

He tenido el mismo problema, lo que hice:

Acaba de agregar una condición if(!IsPostBack) y funciona bien :)

 3
Author: Niket,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-09-27 16:20:40

Tuve un problema similar, pero no estaba usando ASP.Net 1.1 ni actualizar un control a través de javascript. Mi problema solo ocurrió en Firefox y no en IE (!).

He añadido opciones a una lista desplegable en el evento PreRender como esta:

DropDownList DD = (DropDownList)F.FindControl("DDlista");
HiddenField HF = (HiddenField)F.FindControl("HFlista");
string[] opcoes = HF.value.Split('\n');
foreach (string opcao in opcoes) DD.Items.Add(opcao);

Mi "HF" (hiddenfield) tenía las opciones separadas por la nueva línea, así:

HF.value = "option 1\n\roption 2\n\roption 3";

El problema era que la página HTML estaba rota (quiero decir, tenía nuevas líneas) en las opciones de "seleccionar" que representaban el menú desplegable.

Así que resuelto mi problema añadiendo una línea:

DropDownList DD = (DropDownList)F.FindControl("DDlista");
HiddenField HF = (HiddenField)F.FindControl("HFlista");
string dados = HF.Value.Replace("\r", "");
string[] opcoes = dados.Split('\n');
foreach (string opcao in opcoes) DD.Items.Add(opcao);

Espero que esto ayude a alguien.

 3
Author: pamelo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-06-11 11:40:53

En este caso agregue id al botón en RowDataBound de la cuadrícula. Resolverá tu problema.

 2
Author: nilesh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-08-07 16:14:42

Una solución simple para este problema es usar la verificación IsPostBack en la carga de su página. Eso resolverá este problema.

 2
Author: 2 revs, 2 users 50%user249527,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-08-07 16:16:10

Ajax UpdatePanel lo hace, y creo que es la forma más fácil , ignorando la sobrecarga Ajax postback .

 2
Author: netseng,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-08-07 16:17:25

Sé que este es un post super-viejo. Suponiendo que está llamando a su solicitud, aquí hay una idea que ha funcionado para mí:

  1. Implementa el controlador ICallbackEventHandler en tu página
  2. Llame a ClientScriptManager.GetCallbackEventReference para llamar a su código del lado del servidor
  3. Como indica el mensaje de error, puede llamar a ClientScriptManager.RegisterForEventValidation

Si no necesita control total, podría usar un panel de actualización que haría esto es para ti.

 2
Author: tmck2,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-10-21 18:50:37

Nos encontramos con este mismo problema cuando estábamos convirtiendo nuestras páginas ASPX regulares a páginas de contenido.

La página con este problema tenía una etiqueta </form> dentro de una de las secciones de contenido, por lo que se renderizaron dos etiquetas de fin de formulario en tiempo de ejecución que causaron este problema. La eliminación de la etiqueta de fin de formulario adicional de la página resolvió este problema.

 2
Author: Tushar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-11-29 10:28:34

Este error se mostrará sin postback

Añadir código:

If(!IsPostBack){

 //do something

}
 2
Author: Balaji Selvarajan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-02-20 14:23:43

Hace cuatro minutos recibí el mismo error. Entonces he investigado durante media hora como tú. En todos los foros generalmente están diciendo " add page enableEvent..= false or true". Cualquier solución propuesta no resolvió mis problemas hasta que la encontré. El problema es, por desgracia, un ASP.NET botón. Lo quité hace dos segundos. Traté de reemplazar con "imagebutton", pero también era inaceptable (porque daba el mismo error).

Finalmente he reemplazado con LinkButton. parece ser ¡trabajando!

 1
Author: cem,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-08-07 16:09:23

Estaba usando datalist y estaba recibiendo el mismo error para mi pulsador. Solo uso IsPostBack para comprobar y llenar mis controles y el problema está resuelto! ¡Órale!!!

 1
Author: Razia,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-08-07 16:16:44

Lo que funcionó para mí es mover el siguiente código de page_load a page_prerender:

lstMain.DataBind();
Image img = (Image)lstMain.Items[0].FindControl("imgMain");

// Define the name and type of the client scripts on the page.
String csname1 = "PopupScript";
Type cstype = this.GetType();

// Get a ClientScriptManager reference from the Page class.
ClientScriptManager cs = Page.ClientScript;

// Check to see if the startup script is already registered.
if (!cs.IsStartupScriptRegistered(cstype, csname1))
{
    cs.RegisterStartupScript(cstype, csname1, "<script language=javascript> p=\"" + img.ClientID + "\"</script>");
}
 1
Author: Murad Dodhiya,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-04-21 12:38:45

La mejor opción es usar el campo oculto y no deshabilitar la validación de eventos, también cambiar cada listbox, dropdownlist para seleccionar con el atributo de servidor runat

 1
Author: Programista,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-06-14 13:12:44

Si está utilizando el panel de actualización Ajax. Agregue la etiqueta <Triggers> y dentro de ella active el Botón o control causando el postBack usando <asp:PostBackTrigger .../>

 1
Author: devo882,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-12-20 02:35:16

Si conoce por adelantado los datos que se podrían rellenar, puede usar ClientScriptManager para resolver este problema. Tuve este problema al rellenar dinámicamente un cuadro desplegable usando javascript en una selección de usuario anterior.

Aquí hay un ejemplo de código para sobreescribir el método render (en VB y C#) y declarar un valor potencial para la lista desplegable ddCar.

En VB:

Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter)

    Dim ClientScript As ClientScriptManager = Page.ClientScript

    ClientScript.RegisterForEventValidation("ddCar", "Mercedes")

    MyBase.Render(writer)
End Sub

O una ligera variación en C# podría ser:

protected override void Render(HtmlTextWriter writer)
{
    Page.ClientScript.RegisterForEventValidation("ddCar", "Mercedes");
    base.Render(writer);
}

Para los novatos: Esto debería entrar el código detrás del archivo (.vb or .cs) o si se utiliza en el archivo aspx puede envolver en etiquetas <script>.

 1
Author: CraigS,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-12-19 10:08:05

Esta fue la razón por la que lo estaba consiguiendo:

Tenía un ListBox ASP:. Inicialmente estaba oculto. En el lado del cliente lo rellenaría a través de AJAX con opciones. El usuario eligió una opción. Luego, al hacer clic en el botón Enviar, el Servidor se volvería gracioso con el ListBox, ya que no recordaba que tuviera ninguna opción.

Así que lo que hice fue asegurarme de borrar todas las opciones de la lista antes de enviar el formulario al servidor. De esa manera el servidor no se quejó desde la lista fue al cliente vacío y volvió vacío.

Ordenado!!!

 1
Author: user2520440,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-10-11 13:56:52

Como dijo Nick B y eso funcionó para mí, tienes que eliminar los saltos de línea en algunos casos. Echa un vistazo al código:

- Camino equivocado:

<asp:DropDownList ID="DropDownList1" runat="server">
    <asp:ListItem Selected="True">
            Item 1</asp:ListItem>
    <asp:ListItem>
            Item 2</asp:ListItem>
    <asp:ListItem>
            Item 3</asp:ListItem>
</asp:DropDownList>

- Camino correcto:

<asp:DropDownList ID="DropDownList1" runat="server">
    <asp:ListItem Selected="True">Item 1</asp:ListItem>
    <asp:ListItem>Item 2</asp:ListItem>
    <asp:ListItem>Item 3</asp:ListItem>
</asp:DropDownList>

Solo me ocurrió en IE10 +

 1
Author: Andre RB,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-07-02 14:48:44