MasterLocationFormats 在 razor 视图引擎中的意义何在?



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

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

我的问题是:

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

我尝试使用相对路径,例如_Layout.cshtmlin_ViewStart.cshtml但没有奏效)

我已经用谷歌搜索了一下,虽然必须在某处解释,但我找不到它。不久前我问了一个类似的问题,虽然我很欣赏回答的人,但它并没有真正解决我困惑的症结。

好吧,我有一个答案,有点。

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

它们是一个类似的概念,但只被WebFormsViewEngine使用,而不是RazorViewEngine

作为进一步的解释,我将大量引用这个答案:

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

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

母版页允许您定义内容占位符,而 razor 允许您定义部分。母版页在外部呈现页面 in,表示首先是母版页,然后是内容占位符。 我相信剃刀是递归的,从最里面的部分开始, 工作它又回来了。

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

但我的问题仍然存在:

为什么MasterLocationFormats甚至包含在RazorViewEngine中?

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

相关内容

  • 没有找到相关文章

最新更新