Похоже, что вызов 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>