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