ASP.NET网页:覆盖内容页面布局中定义的值

时间:2015-01-21 06:44:56

标签: razor asp.net-webpages

我在布局页面顶部定义了覆盖值的问题。

例如,如果我在布局页面的顶部有这个:

@{
    Page.ShowProgressBar = false;
}

并在布局中的某处读取值:

@ if (Page.ShowProgressBar) {
    // do some processing in the layout
}

如何设置

@{
    Page.ShowProgressBar = true;
}

在内容页面中?

换句话说,我想在布局中为Page.ShowProgressBar提供默认,并在需要时在内容页面中覆盖它。

这也意味着我不希望在所有内容页面中为Page.ShowProgressBar设置值

1 个答案:

答案 0 :(得分:1)

布局页面在内容页面之后执行,因此您在内容页面中选择设置的值将被布局页面覆盖。您应该使用_PageStart.cshtml文件来设置默认值。 <{1}}在内容页面之前执行,因此您可以覆盖内容页面中的值。

或者,您可以使用 _AppStart.cshtml 文件来设置可以在任何地方覆盖的应用程序级变量。您可以在此处详细了解这些文件:http://www.asp.net/web-pages/overview/ui,-layouts,-and-themes/18-customizing-site-wide-behavior