Aquí podría ser tu PUBLICIDAD


ASP.Net MVC: comportamiento extraño de caché de parámetros en Acciones

votos
0

Estoy enfrentando un problema extraño en mi proyecto. Mis acciones obtienen valores de param viejos en lugar de los valores reales que están en Request.Params. Creé una acción HomeController.Echo (texto de cadena) para ilustrarlo (ver captura de pantalla). Cuando llamo a la acción por primera vez como Home / Echo? Text = aaa todo funciona bien. Cuando llamo a la misma acción por segunda vez con diferente valor de texto (Home / Echo / text = bbb), obtengo el antiguo valor aaa nuevamente en el parámetro de texto de acción. Es extraño pensar que Request.Params contiene el valor bbb correcto.

Estoy pensando si hay algo en lo que podría romperme, pero no puedo entender nada. Estoy sirviendo controladores del contenedor IoC, anulé el método ControllerActionInvoker.InvokeActionMethodWithFilters (para inyectar dependencias en los filtros de IoC) y estoy manejando HttpApplication.AuthenticateRequest. No trabajo con params / binding de ninguna manera en ninguno de estos ...

captura de pantalla

Publicado el 12/03/2009 a las 18:45
fuente por usuario Buthrakaur
En otros idiomas...        العربية       

3 respuestas

votos
1

El problema fue causado probablemente por algunos problemas de subprocesamiento: olvidé registrar los controladores en mi contenedor IoC con el ciclo de vida por solicitud (se registraron como singleton).

Respondida el 13/03/2009 a las 03:37
fuente por usuario Buthrakaur


Aquí podría ser tu PUBLICIDAD


votos
0

Le sugiero que comience a comentar todos los métodos que anula hasta que aísle el problema. En el peor de los casos, llegará al punto en que el asistente MVC de ASP.NET abandonó su proyecto cuando lo creó y donde definitivamente funcionó el enlace de parámetros.

Respondida el 12/03/2009 a las 06:56
fuente por usuario Darin Dimitrov

votos
0

¿Ha depurado a través de la aplicación para ver dónde se cambia el valor? Un simple reloj en la variable de texto (como lo llame en el código) debe ceder donde cambia la variable. Sin código para ejecutar, no tengo idea de dónde está sucediendo.

Diría que escribo una prueba, pero todavía hay una posibilidad de que UI interfiera aquí. Si encuentra el lugar en el código que está cambiando, escriba una prueba para confirmar el error y comience a golpearlo.

Respondida el 12/03/2009 a las 06:54
fuente por usuario Gregory A Beamer