2011-01-06 8 views
6

C'è un modo per determinare se una chiamata a un'azione di un controller proviene da una vista utilizzando la funzione Html.RenderAction.Determina se la chiamata all'azione proviene da una vista

Questo è simile a Request.IsAjaxRequest. Se la chiamata proviene da una vista mi piacerebbe solo visualizzare una vista parziale piuttosto che la vista completa con la pagina principale.

proposito rendering parziale non è una soluzione praticabile in quanto l'azione recupera i dati aggiuntivi

risposta

9

Utilizzo del ControllerContext.IsChildAction ha l'effetto dato. in questo modo posso fornire lo stesso HTML utilizzando un'azione bambino e una richiesta Ajax (per fallback sugli utenti non javascript)

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

grazie per questa domanda e risposta è utile, avevo bisogno di controllare questo in una vista così ho usato ViewContext.IsChildAction –

Problemi correlati