應該在動作中調用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中設置了另一個佈局,那麼我不能忽略它。
這是否有意義?我應該能夠忽略這兩種佈局嗎?如果不是,爲什麼?