2015-01-21 33 views
1

我遇到了问题,覆盖了在布局页面顶部定义的值。ASP.NET网页:覆盖从内容页面布局中定义的值

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

@{ 
    Page.ShowProgressBar = false; 
} 

而且在布局某处读取值:

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

我如何可以选择设置

@{ 
    Page.ShowProgressBar = true; 
} 

在内容页面中?

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

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

回答

1

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

或者,您可以使用_AppStart.cshtml文件来设置应用程序级别的变量,您可以在任何地方覆盖该变量。您可以在这里阅读有关这些文件的更多信息:http://www.asp.net/web-pages/overview/ui,-layouts,-and-themes/18-customizing-site-wide-behavior

+0

谢谢。 _PageStart.cshtml是我正在寻找。并再次感谢您推荐资源链接。 – SamuelC 2015-01-21 08:18:19