剃刀视图引擎中MasterLocationFormats的重点是什么?

时间:2017-05-16 00:01:30

标签: asp.net-mvc razor viewengine

如果我理解正确,则应指定搜索哪些位置以找到主_Layout.cshtml文件。

但是我的_ViewStart.cshtml文件需要完整路径,例如~/Views/Shared/_Layout.cshtml。这意味着MasterLocationFormats中指定的任何位置都被完全忽略。

我的问题是:

  • 为什么首先要包括MasterLocationForamts[]
  • 我遗失了MasterLocationFormats[]的其他用途吗?
  • 有没有办法在这些位置进行_ViewStart.cshtml搜索 在MasterLocationFormats[]中指定?

我尝试在_Layout.cshtml中使用_ViewStart.cshtml之类的相对路径,但这不起作用)

我已经用Google搜索了,虽然必须在某处解释,但我无法找到它。我问了similar question一段时间,虽然我很欣赏这个回答的人,但它并没有真正解决我困惑的症结。

1 个答案:

答案 0 :(得分:0)

我有一个答案。

我错误地认为MasterPages = Layout.chtml。不对。

他们是一个类似的概念,但仅由WebFormsViewEngine使用,而不是RazorViewEngine

作为进一步的解释,我将大量引用this answer

  

从MVC3开始,引入了剃刀视图引擎。剃刀   不允许您使用母版页。

     

MVC3和4有另一个名为WebForms视图引擎的视图引擎   [使用]母版页。

     

母版页允许您定义内容占位符,而剃须刀   允许您定义部分。母版页将页面呈现在外面   in,首先表示母版页,然后是内容占位符。   剃刀是我相信递归并从最里面的部分开始   让它恢复原状。

因此,使用剃刀时,母版页的概念似乎无效。

但我的问题仍然存在:

为什么MasterLocationFormats甚至包含在RazorViewEngine

如果您知道,请发一个答案 - 我会将其标记为正确答案。