存储在字符串变量中的值在每次页面加载时都会丢失

时间:2014-03-03 15:19:27

标签: c# asp.net string variables

我有一个字符串变量,我在页面加载之前初始化。字符串变量接受函数中的值,我想在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";
    }

}

4 个答案:

答案 0 :(得分:1)

网络是无国籍的。你自己需要maintain state of your web page。有很多方法可以做到这一点,例如ViewStateSession。您可以将字符串值存储在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源代码,客户端可以看到字符串)。