如果我理解正确,它旨在指定搜索哪些位置以找到主_Layout.cshtml
文件。
但是我的_ViewStart.cshtml
文件需要一个完整的路径,例如~/Views/Shared/_Layout.cshtml
. 这意味着MasterLocationFormats
中指定的任何位置都将被完全忽略。
我的问题是:
- 为什么要首先包括
MasterLocationForamts[]
? - 我缺少
MasterLocationFormats[]
还有其他用途吗? - 有没有办法在位置进行
_ViewStart.cshtml
搜索 在MasterLocationFormats[]
中指定 ?
我尝试使用相对路径,例如_Layout.cshtml
in_ViewStart.cshtml
但没有奏效)
我已经用谷歌搜索了一下,虽然必须在某处解释,但我找不到它。不久前我问了一个类似的问题,虽然我很欣赏回答的人,但它并没有真正解决我困惑的症结。
好吧,我有一个答案,有点。
我错误地认为MasterPages = Layout.chtml。不对。
它们是一个类似的概念,但只被WebFormsViewEngine
使用,而不是RazorViewEngine
。
作为进一步的解释,我将大量引用这个答案:
从 MVC3 开始,引入了剃刀视图引擎。剃刀 不允许您使用母版页。
MVC3 和 4 具有另一个视图引擎,称为 WebForms 视图引擎 [使用]母版页。
母版页允许您定义内容占位符,而 razor 允许您定义部分。母版页在外部呈现页面 in,表示首先是母版页,然后是内容占位符。 我相信剃刀是递归的,从最里面的部分开始, 工作它又回来了。
因此,使用剃刀时,母版页的概念似乎无效。
但我的问题仍然存在:
为什么MasterLocationFormats
甚至包含在RazorViewEngine
中?
如果您知道,请发布答案 - 我会将其标记为正确的答案。