c#中的Accessor Mutators返回错误的值

use*_*032 0 .net c# asp.net

我在asp.net(C#)中使用accessor/mutators来分配和获取值.

我有两个事件:

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);
}
Run Code Online (Sandbox Code Playgroud)

它称之为:

public class AccessibleVariables
{
    public int depID { get; set; }
    public int DepID 
    {
        get { return depID; }
        set { depID = value; }
    }
 }
Run Code Online (Sandbox Code Playgroud)

第二个事件返回0,为什么?我运行调试器,我检查,(设置)分配实际值,这是完美但得到不返回实际值,它总是返回0,为什么?

Adi*_*dil 5

由于http是无状态协议,因此不在postbackasp.net中维护属性的值.您可以使用ViewState在回发之间保持值.您可以在ViewState上创建一个int属性,它将从getter返回int并使用int来设置ViewState.

ViewState["depID"] = "0";   
public int AccessibleVariables
{
    get { return (int) ViewState["depID"]; }
    set { ViewState["depID"] = value; }
}
Run Code Online (Sandbox Code Playgroud)

的ViewState

简而言之,Microsoft®ASP.NET视图状态是ASP.NET网页用于跨回发持久更改Web窗体状态的技术.

无国籍议定书

在计算中,无状态协议是一种通信协议,它将每个请求视为与任何先前请求无关的独立事务,以便通信由独立的请求和响应对组成.无状态协议不要求服务器在多个请求期间保留关于每个通信伙伴的会话信息或状态