2016-06-10 57 views
0

所以我有一個內容頁aspx & aspx.cs,我添加到ASPX此行<%@ MasterType virtualPath="~/MasterPage.master"%>,所以我可以從我的aspx.cs數據傳遞給我的master page。它可以工作,但是一旦我點擊移動到另一個頁面或刷新頁面,我傳遞的數據就消失了,並且值返回到字段在傳遞任何東西之前的原始默認值。在母版頁我寫道:ASP.NET:從內容頁傳遞數據掌握頁,並保持它

public string PassLogedUser 
    { 
     get { return this.LogedUser.Text; } 
     set { this.LogedUser.Text = value; } 
    } 

protected void Page_Load(object sender, EventArgs e) 
    { 
     LogedUser.Text = PassLogedUser; 
    } 

我怎樣才能保持我的數據傳遞,當我在瀏覽器中瀏覽到另一個頁面,甚至當我刷新頁面?

感謝

+0

您可以使用session來保存,可用於從頁面相同的用戶頁面的數據。您也可以將其存儲在cookie中或數據庫中。 – 2016-06-10 17:13:50

+0

謝謝,你能告訴我該怎麼做嗎?如何使用會話或直接給我一個解釋鏈接? – nirh1989

+0

這是非常基本的東西,並且有很多關於在ASP.NET Web窗體中頁面間持久數據的在線信息。谷歌將是一個好的開始。 – DVK

回答

1

所有頁面是無狀態的。屬性只在呈現頁面時存在,並且一旦響應返回給用戶,頁面狀態消失。

爲了解決這個問題,在屬性設置器中,您需要將值保存在用戶特定的位置。全球會議可能是一個好地方 - 或用戶Cookie。然後在屬性getter中,您需要從您使用的存儲中讀取數據。

public string PassLogedUser 
{ 
    get 
    { 
     return Session("PassLogedUser") ?? "anonymous"; 
    } 
    set 
    { 
     Session("PassLogedUser", value); 
    } 
} 

然後在主網頁預渲染事件中,你需要設置LogedUser.Text = PassLogedUser;

+0

你能幫我一些代碼示例嗎?我不會如何去做你剛剛說的 – nirh1989