2011-10-27 10 views
5

Estoy seguro de que existió un medio de almacenamiento basado en la solicitud object, similar al HttpContext.Current.Session, que persistió globalmente solo por la vida de una sola solicitud, pero no puedo recordarlo.¿Medio de almacenamiento para el ciclo de vida de una sola solicitud?

+0

¿Quiere decir [ViewState] (http://msdn.microsoft.com/en-us/library/ms972976.aspx)? No es una solicitud amplia, ya que almacena valores en las devoluciones. Tal vez 'Request.QueryString' o' Request.Params', pero esto también sirve para mantener los valores en las devoluciones (y detectar los parámetros de envío del usuario). Hmm, si necesitas almacenar valores solo para una sola solicitud, ¿por qué no usas simplemente un miembro de la clase de tu página? Es lifetyme es exactamente el tiempo de vida de la página. –

+0

@TimSchmelter, Fue HttpContext.Items - es útil porque se puede acceder desde un contexto estático – maxp

Respuesta

10

Apuesto a que estás pensando en HttpContext.Items.

Obtiene una colección de clave/valor que se puede utilizar para organizar y compartir datos entre una interfaz IHttpModule y una interfaz IHttpHandler durante una solicitud HTTP.

Muy útil para compartir estado entre HttpModules, HttpHandlers y páginas de diferentes partes del ciclo de solicitud.

Más lectura:

Tenga en cuenta que HttpContext.Items funciona tanto para ASP.NET Web Forms y ASP.NET MVC pero hay una advertencia cuando se utiliza tanto en la misma aplicación web . Más sobre eso en this question.

0

Hay TempData en ASP.Net MVC. Los elementos que persisten allí solo sobreviven de una solicitud a la siguiente. En definitiva, su almacenamiento es estado de sesión.

0

¿No pudo usar ViewData (si es ASP.NET MVC) o ViewState (si es ASP.NET)?

+0

Viewstate persiste en las devoluciones, es decir, se extiende a través de varias solicitudes. – maxp

Cuestiones relacionadas