我想渲染视图而无需每次加载布局。什么是最好的方法?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中删除布局。