在没有布局的情况下渲染Ajax页面请求,但保持子布局不变

时间:2013-02-14 15:05:55

标签: asp.net ajax asp.net-mvc-4

我有一个使用嵌套布局的相对较小的网站。

_Layout.cshtml包含网站的整体布局;

  • 标题
  • 菜单
  • 内容
  • 页脚

我希望通过Ajax加载内容,但同时保持网站无需通过URL即可导航。如果我检查控制器是否调用是Ajax并且我返回一个ParvialView,那么它不会呈现视图可能正在使用的_subLayout.cshtml。如果我正常渲染它然后它将包括_subLayout.cshtml,但也包括_Layout.cshtml。

如果视图加载时不是_Layout.cshtml,而是加载_subLayout.cshtml,同时保持_Layout.cshtml呈现完整的非Ajax调用?

1 个答案:

答案 0 :(得分:0)

一点点哦,我可以在_Layout应用之前在_subLayout中执行Request.IsAjaxRequest()。解决了这个问题。

if(!Request.IsAjaxRequest())
{
    Layout = "~/Views/Shared/_Layout.cshtml";
}