2011-07-11 18 views
5

ASP.NET MVCには、有用なメソッドRequest.IsAjaxRequestがあります。これは、AJAXを介して要求が行われたかどうかを判断するために使用できます。しかし、RenderActionメソッドもAJAXを介してコントローラ/アクションを呼び出すようです。RenderActionのリクエストとAJAXのリクエストを区別するにはどうすればよいですか?

RenderAction経由のコールはViewを返すのに対し、AJAX経由のコールはJsonオブジェクトを返すようにしたいと思います。私はそれらの2つの情報源からの呼び出しを区別することができますか?

EDIT: Re。ジム:私は単にViewRenderActionを呼び出す:SomeView.ascx

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

william、私はあなたの声明RenderActionで異なることを願います。同じテストがレンダリングに[Request.IsAjaxRequest()]を適用します。確かにデフォルトではajax経由で呼び出されることはありません。あなたのコードをチェックして、「カバーの下に」レンダリングを呼び出すいくつかのjqueryを持たないようにする必要があります。 –

+0

@jim、更新を参照してください... –

答えて

5

私はあなたが方法がRenderAction()によって呼び出されたかどうかを判断するためにControllerContext.IsChildActionを使用することができます信じています。

+0

魅力のように動作します:)ありがとう! –

関連する問題