簡體   English   中英

如何訪問母版頁中不同內容占位符中聲明的變量?

[英]How to access variables declared in a different content place holder in a master page?

我想在頂部占位符中設置一個測試,以查看是否存在所有必需信息,以便無錯誤地加載頁面。

我想避免在每個占位符上進行此測試,因為我想最大程度地減少數據使用量。

如何訪問一個內容占位符中聲明的變量

有問題的代碼演示:

<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>

我只是碰到這個相同的問題(第一次),遇到了這個老問題,所以...

我最可能的答案通常是:

  • 將值創建移動到代碼隱藏或MVC控制器(可以將其放置在ViewData中)中,並讓每個內容部分中的代碼從那里引用它。
  • 讓內容頁面上的第一個實例將值存儲在ViewData或HttpContext.Current.Items鍵值集合中,其他內容部分中的后續引用都可以從中訪問該值。 (例如,將您的dim something as integer = 1加上諸如ViewData["something"] = something;Context.Items["something"] = something;然后從其他地方進行類似訪問。)類似於將其存儲在session或應用程序,但特定於當前請求上下文並在當前請求上下文之后到期。

當然,這兩種方法中的任何一種是否適合您都將取決於您自己的特定環境。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM