2011-01-06 8 views
6

¿Hay alguna forma de determinar si una llamada a una acción de los controladores se realiza desde una vista utilizando la función Html.RenderAction?Determinar si la llamada a la acción es desde una vista

Esto es similar a Request.IsAjaxRequest. Si la llamada proviene de una vista, me gustaría simplemente mostrar una vista parcial en lugar de la vista completa con la página maestra.

BTW Render parcial no es una solución viable como la acción obtiene datos adicionales

Respuesta

9

Uso de la ControllerContext.IsChildAction tiene el efecto dado. de esta manera puedo proporcionar el mismo HTML usando una acción de niño y una petición ajax (por repliegue de los usuarios no JavaScript)

 if (Request.IsAjaxRequest() || ControllerContext.IsChildAction) 
      return PartialView("ViewName", results); 
+0

gracias por esta pregunta y la respuesta es útil, tenía que comprobar esto en una vista por lo que utilizado ViewContext.IsChildAction –

Cuestiones relacionadas