什么是仅在ASP.NET MVC 5中每次加载布局的情况下仅渲染视图的最佳方法



我想渲染视图而无需每次加载布局。什么是最好的方法?P.S.使用部分视图不是我的解决方案。

您希望处理您的视图,并且布局是静态的(如缓存),并且只是刷新布局内部的零件。不,你不能。发布页面后,清除了所有内容(整个页面)(除了一些特定的内容(例如cookie),并且该页面已准备好用于服务器响应。有可能使用完整的Ajax网站。或作为一种奇怪且昂贵的解决方案,您可以将布局页面保存在cookie中,然后如果设置了cookie(如ETR提到),则在布局中返回null。。Web浏览器不是您的应用程序,您不能说"此部分应该保持位置,只需更改此部分。

例如,如果您想在不加载的AJAX请求中,则首先检查请求是否是Modyfing的AJAX请求:

In ~/Views/ViewStart.cshtml

喜欢下面:

@{
    Layout = Request.IsAjaxRequest() ? null : "~/Views/Shared/_Layout.cshtml";
}

和在控制器中:

public ActionResult Index()
{
    return View();
}

很难说有时您要加载布局,但是在视图的顶部,您可以检查标准:

@{
    if (/* your criteria here */) {
        Layout = "path to your layout file";
    } else {
        Layout = null;
    }
}

您必须在视图或_viewstart中删除布局。

相关内容