2011-01-06 5 views
6

Czy istnieje sposób sprawdzenia, czy wywołanie akcji kontrolera pochodzi z widoku za pomocą funkcji Html.RenderAction.Ustal, czy wezwanie do działania pochodzi z widoku

Jest to podobne do Request.IsAjaxRequest. Jeśli wywołanie pochodzi z widoku, chciałbym wyświetlić tylko częściowy widok, a nie pełny widok ze stroną wzorcową.

okazji renderowania częściowy nie jest dobrym rozwiązaniem, ponieważ działanie pobiera dodatkowe dane

Odpowiedz

9

Stosując ControllerContext.IsChildAction jest dany efekt. W ten sposób można zapewnić ten sam kod HTML za pomocą działań dzieci i żądania AJAX (dla awaryjnej na niezarejestrowanych użytkowników JavaScript)

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

dzięki za to pytanie i odpowiedź jest przydatna, musiałem to sprawdzić w widoku tak ja użył ViewContext.IsChildAction –