Razor (Web Pages) 布局页面在 RenderBody 之前执行

本文关键字:RenderBody 执行 Web Pages 布局 Razor | 更新日期: 2023-09-27 18:33:00

我正在使用Razor网页(所以不是MVC(。我有一个 Razor 布局页面,该页面在我的 Web 应用程序中使用。

我有一个代码执行顺序问题。通常,您在子页面上设置 Page.Title(例如(,然后在运行布局页面时填充此变量,以便您可以将标题放置在布局中的页面上。没关系。但我需要倒退。我想在执行子页面上的代码之前为所有页面运行一些代码。

我希望能够运行一段代码,我不必在每个子页面中引用它,并且我需要在子页面运行任何代码之前执行它。我确信有一种非常简单明了的方法可以做到这一点,因为我是 Razor 网页生命周期的新手,所以我错过了......

例:我在"布局"页面中设置了我的站点名称。但是出于某种原因,我想在我的子页面、子子页面等的很多地方显示站点名称。我该如何最好地做到这一点?

我知道 _PageStart.cshtml,我可以用来在逐个文件夹的基础上先运行代码,设置 Page.Anything 我可能需要的变量等,这适用于我的目的。但我很难理解这是正常过程,还是这是一种糟糕的方法。网络上似乎没有太多关于Razor网页这方面的信息。

Razor (Web Pages) 布局页面在 RenderBody 之前执行

Web 用户控件就是您想要的。

只需设置布局:

@{
  Layout="~/Master.cshtml";
}