簡體   English   中英

C#中的訪問器變異器返回錯誤值

[英]Accessor Mutators in c# returning wrong value

我在asp.net(C#)中使用訪問器/更改器來分配和獲取值。

我有兩個事件:

protected void ddlDepartments_SelectedIndexChanged(object sender, EventArgs e)
{
    accessVariables.DepID = Convert.ToInt32(ddlDepartments.SelectedValue);
}
protected void chkIsHead_CheckedChanged(object sender, EventArgs e)
{
    Response.Write(accessVariables.DepID);
}

它稱為:

public class AccessibleVariables
{
    public int depID { get; set; }
    public int DepID 
    {
        get { return depID; }
        set { depID = value; }
    }
 }

第2個事件返回0,為什么? 我運行了調試器,我檢查了一下,(集合)分配了實際值,這很完美,但是get不會返回實際值,它總是返回0,為什么?

由於http是無狀態協議,因此屬性值不會在asp.net的postback中維護。 您可以使用ViewState在兩次回發之間保存值。 您可以在ViewState上創建一個int屬性,該屬性將從getter返回int並接受int來設置ViewState

ViewState["depID"] = "0";   
public int AccessibleVariables
{
    get { return (int) ViewState["depID"]; }
    set { ViewState["depID"] = value; }
}

的ViewState

簡而言之,Microsoft®ASP.NET視圖狀態是ASP.NET網頁用於在回發之間持久保存Web窗體狀態更改的技術。

無狀態協議

在計算中,無狀態協議是一種通信協議,它將每個請求都視為與任何先前請求都不相關的獨立事務,因此通信由獨立的請求和響應對組成。 無狀態協議不需要服務器在多個請求期間保留有關每個通信伙伴的會話信息或狀態

暫無
暫無

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

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