c#中的访问器变量返回错误的值
我使用asp.net(C#)中的访问器/变异器来赋值和获取值 我有两件事:c#中的访问器变量返回错误的值,c#,asp.net,.net,C#,Asp.net,.net,我使用asp.net(C#)中的访问器/变异器来赋值和获取值 我有两件事: protected void ddlDepartments_SelectedIndexChanged(object sender, EventArgs e) { accessVariables.DepID = Convert.ToInt32(ddlDepartments.SelectedValue); } protected void chkIsHead_CheckedChanged(object sender,
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; }
}
}
第二个事件返回0,为什么?
我运行了调试器,我检查了,(set)分配了实值,这很完美,但是get不返回实值,它总是返回0,为什么?由于http是无状态协议,属性的值不在asp.net中的
回发中维护。您可以使用ViewState
在回发之间保留值。您可以在ViewState上创建一个int属性,该属性将从getter返回int并获取int以设置ViewState
ViewState["depID"] = "0";
public int AccessibleVariables
{
get { return (int) ViewState["depID"]; }
set { ViewState["depID"] = value; }
}
简而言之,Microsoft®ASP.NET视图状态是
用于保存对Web窗体状态的更改的ASP.NET网页
跨越回发邮件
在计算中,无状态协议是一种通信协议,它
将每个请求视为独立事务,与
任何先前的请求,以便通信由独立的
成对的请求和响应。无状态协议不需要
用于保留每个会话的会话信息或状态的服务器
多个请求期间的通信伙伴
由于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; }
}
简而言之,Microsoft®ASP.NET视图状态是
用于保存对Web窗体状态的更改的ASP.NET网页
跨越回发邮件
在计算中,无状态协议是一种通信协议,它
将每个请求视为独立事务,与
任何先前的请求,以便通信由独立的
成对的请求和响应。无状态协议不需要
用于保留每个会话的会话信息或状态的服务器
多个请求期间的通信伙伴
奇怪的是,你有两个公共财产,基本上都被命名为同一个东西。您的AccessibleVariables可以简化为公共类AccessibleVariables{public int DeptID{get;set;}}
那么MSDN犯了同样的奇怪错误,兄弟@user3518032:您正在查看.NET 1.1文档。它已经有十多年的历史了。而且,他们的第一个是private
——这是在属性语法糖出现之前的做法:private int\u depID;public int-DepID{get{return{u-DepID;}set{u-DepID=value};}
总之,与你的问题并不相关。你有两个公共属性,基本上命名为同一个东西,这有点奇怪。您的AccessibleVariables可以简化为公共类AccessibleVariables{public int DeptID{get;set;}}
那么MSDN犯了同样的奇怪错误,兄弟@user3518032:您正在查看.NET 1.1文档。它已经有十多年的历史了。而且,他们的第一个是private
——这是在属性语法糖出现之前的做法:private int\u depID;public int-DepID{get{return{u-DepID;}set{{u-DepID=value};}
总之,这与您的问题并不相关。