Html.RenderAction子アクションのタイプが親アクションのタイプと異なる場合、Asp.Net MVC2 アプリを呼び出すと、ページの MIME タイプが変更される可能性があるようです。
以下のコード (MVC2 RTM でのテスト) は、私には理にかなっているように見えますが、 をapplication/json呼び出したときに type の結果を返しHome/Indexます。ページを表示する代わりに、ブラウザーはバーフを表示し、ダウンロードするかどうかを尋ねます。
私の質問: 何か不足していますか? これはバグですか?もしそうなら、最善の回避策は何ですか?
コントローラ:
public class HomeController : Controller
{
public ActionResult Index()
{
ViewData[ "Message" ] = "Welcome to ASP.NET MVC!";
return View();
}
[ChildActionOnly]
public JsonResult States()
{
string[] states = new[] { "AK", "AL", "AR", "AZ", };
return Json(states, JsonRequestBehavior.AllowGet);
}
}
見る:
<h2><%= Html.Encode(ViewData["Message"]) %></h2>
<p>
To learn more about ASP.NET MVC visit <a href="http://asp.net/mvc" title="ASP.NET MVC Website">http://asp.net/mvc</a>.
</p>
<script>
var states = <% Html.RenderAction("States"); %>;
</script>