我有一个字符串变量,我在页面加载之前初始化。字符串变量接受函数中的值,我想在Submit事件中使用此变量。但是当我提交表格时,字符串谷值丢失了。字符串变量在页面加载时变为空白。如何存储值直到提交事件?
以下是示例/示例代码:
public partial class Send_Enquiry : System.Web.UI.Page
{
String tempID2=string.Empty;
....
protected void Page_Load(object sender, EventArgs e)
{
}
protected void submit()
{
//When I am calling the "tempID2" value over here, the value come blank.
}
protected void getdata()
{
tempID2= "data";
}
}
答案 0 :(得分:1)
网络是无国籍的。你自己需要maintain state of your web page。有很多方法可以做到这一点,例如ViewState
和Session
。您可以将字符串值存储在ViewState
(在页面级别维护)或在服务器上按用户维护的Session
中。
您可以将其存储为:
ViewState["yourKey"] = "data";
然后为了检索它,你可以这样做:
string str = ViewState["yourKey"] as string;
答案 1 :(得分:0)
HTTP或Web是无状态的。
您需要将变量保存到会话中。
喜欢:
Session["something"]="hi";
然后,您可以通过执行此操作来检索值
string value=Session["something"]; //"hi"
网站与桌面应用程序不同。
答案 2 :(得分:0)
将其存储在会话变量中。要存储它,您可以使用:
Session["tempId2"] = tempId2;
然后再来一次:
string tempId2 = Session["tempId2"].ToString ();
答案 3 :(得分:0)
为每次交互创建和销毁类实例(每次将页面重新提交到服务器时)。这就是为什么不保留该领域的价值的原因。你应该将它放在表单的隐藏字段中以保留值(意味着如果要查看html源代码,客户端可以看到字符串)。