Html.RenderAction
如果子操作的类型与父操作的类型不同,则在 Asp.Net MVC2 应用程序中调用似乎可以更改页面的 mime 类型。
下面的代码(在 MVC2 RTM 中测试)对我来说似乎很明智,application/json
在调用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>