2011-09-14 11 views
13

Mam działanie, które może potencjalnie zostać wywołane za pomocą normalnego łącza, w którym to przypadku zwrócę widok(), lub też można go wywołać za pośrednictwem AJAX lub RenderAction (np. Jako działanie dla dzieci), w którym to przypadku " d zwróci PartialView().Jak sprawdzić, czy moje działanie jest wywoływane przez funkcję RenderAction?

Porządkowanie części AJAX jest łatwe - ale jak mogę sprawdzić, czy moja akcja jest renderowana jako akcja podrzędna?

Idealnie, chciałbym, aby móc napisać kod tak:

if (Request.IsAjaxRequest() || Request.IsChildAction()) 
    return PartialView(); 

return View(); 

Oczywiście Request.IsChildAction() nie istnieje - jest tam coś simlilar, czy po prostu trzeba utworzyć specjalna ChildAction, która zawsze zwraca PartialView?

Odpowiedz

33

Byłaś prawie tam:

public ActionResult Foo() 
{ 
    if (Request.IsAjaxRequest() || ControllerContext.IsChildAction) 
    { 
     return PartialView(); 
    } 
    return View(); 
} 
+0

Dzięki - Zacząłem myśleć, nie było sposobu, aby powiedzieć – StanK

Powiązane problemy