2011-07-11 33 views
5

在ASP.NET MVC中,我可以使用有用的方法Request.IsAjaxRequest來確定請求是否通過AJAX進行。不過,RenderAction方法似乎也是通過AJAX調用控制器/操作。如何區分由RenderAction和AJAX製作的請求?

我希望通過RenderAction的呼叫返回View,而通過AJAX呼叫返回Json對象。有什麼辦法可以區分來自這兩個來源的電話嗎?

編輯: Re。吉姆:我只是叫RenderActionView

SomeView.ascx

Html.RenderAction("Action", "AnotherController", new { id = "some ID" }); 
+0

威廉,我懇求在你的陳述上重新渲染RenderAction。相同的測試在渲染時適用[Request.IsAjaxRequest()]。它肯定不會通過默認的ajax調用。你應該檢查你的代碼,以確保你沒有一些jquery調用renderaction'的底部'。 –

+0

@jim,看到更新... –

回答

5

我相信你可以使用ControllerContext.IsChildAction確定的方法被稱爲RenderAction()

+0

工程就像一個魅力:)謝謝! –