应该在动作中调用PartialView()使用布局?部分视图应该使用指定的布局吗?
这里是我的操作:
public ActionResult SomeAction()
{
if (Request.IsAjaxRequest())
return PartialView();
else
return View();
}
这里是我的_ViewStart.cshtml:
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
方案1:行动呼吁没有指定布局的视图。
@{
//Layout = "~/Views/Shared/_SomeLayout.cshtml";
}
<h2>View!</h2>
- 查看的结果:该视图被包裹在一个布局
- PartialView的结果:该视图不裹布局
这是从达林季米特洛夫后盾this response。
场景#2:动作调用具有指定布局的视图。
@{
Layout = "~/Views/Shared/_SomeLayout.cshtml";
}
<h2>View!</h2>
- 查看的结果:该视图被包裹在一个布局
- PartialView的结果:鉴于仍然包裹在布局
这也似乎是由this other response备份来自Darin Dimitrov。 (注意:即使他的回答是针对AJAX请求的全部答案,但这是针对OP有两个视图,一个完整视图和一个局部视图的问题的回答。)
因此,第一个问题是Darin解释说如果你不想要一个布局,使用PartialView(),但在第二个他说如果你不想布局,然后这是一个解决方法。
有人可以向我解释,如果有什么我失踪或为什么这样。不管达林如何说,如果我只设置_ViewStart.cshtml
的布局,那么我可以用PartialView()忽略它,但是如果我在View中设置了另一个布局,那么我不能忽略它。
这是否有意义?我应该能够忽略这两种布局吗?如果不是,为什么?