如何访问母版页中不同内容占位符中声明的变量?

时间:2013-12-24 20:36:49

标签: asp.net vb.net master-pages

我想在head占位符中设置一个测试,看看所有必需的信息都存在,以便加载页面而没有错误。

我想避免在每个占位符上进行此测试,因为我希望最大限度地减少数据使用。

如何从另一个

访问一个内容占位符中声明的变量

有问题的代码演示:

<asp:Content ID="Content1" ContentPlaceHolderID="PHHead" Runat="Server">
    <%
    'Variable declaration
    dim something as integer = 1
    %>
</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="PHMain" Runat="Server">
   <%
   'this returns an error that the variable does not exist:
   response.write(something)
   %>
</asp:Content>

1 个答案:

答案 0 :(得分:0)

我只是碰到了同样的问题(无数次)并碰到了这个老问题,所以......

我最可能的答案通常是:

  • 将值创建移动到代码隐藏或MVC控制器(可以将其放在ViewData中),并让每个内容部分中的代码从那里引用它。
  • 让内容页面上的第一个实例存储ViewData中的值或HttpContext.Current.Items键值集合,其他内容部分中的连续引用可以从中访问它。 (例如,使用类似dim something as integer = 1ViewData["something"] = something;的{​​{1}}跟随Context.Items["something"] = something;,并从其他地方进行类似访问。)类似于将其存储在会话或应用程序中,但特定于当前请求后过期上下文。

当然,这些中的任何一个是否适合您,仅取决于您自己的特定背景。