2012-04-05 17 views
1

In einem Projekt verwenden wir PartialView und View auf der gleichen Aktion, je nachdem, wie es aufgerufen wird (dank Request.IsAjaxRequest()). Aber es gibt Orte, an denen wir eine Aktion auf einer Seite ausführen müssen (nicht Ajax).Wie identifiziert man die Anfrage über Html.RenderAction()

So verwenden wir die HTML-Helfer:

Html.RenderAction(Action, Controller, routeValues) 

Aber diese Art von Anruf auch eine PartialView zurückkehren sollte und nicht eine Ansicht. Und da dies kein Ajax-Aufruf zu sein scheint, können wir die Methode Request.IsAjaxRequest() nicht verwenden, um zu ermitteln, wie die Anforderung gesendet wurde.

Ich würde gerne wissen, ob es etwas gibt, das wir verwenden können, das feststellen könnte, ob die Anfrage durch einen Html.RenderAction Aufruf gemacht wurde?

+0

Das ist nicht was ich frage. Ich weiß, dass ich Ajax Anfrage stellen kann, aber ich will nicht. Alle meine Ajax-Anfragen werden über jQuery zusätzlich zur normalen Anfrage erledigt ... Html.RenderAction wird nicht über Ajax ausgeführt. – Whoami

+0

oder Sie können Ihre eigene Frage beantworten und als akzeptiert markieren ... – Rafay

+0

Ich muss einige Male warten, bevor ich meine eigene Frage beantworten kann ... – Whoami

Antwort

0

Ich fand die Lösung, indem ich den gesamten Request/Controller Kontext durchforstete und schließlich die Eigenschaft IsChildAction auf der ControllerContext fand. Dies zeigt an, ob die Aktion über Html.RenderAction oder über die URL aufgerufen wurde.

Verwandte Themen