【问题标题】:How to use ViewState after Request.Form?Request.Form 后如何使用 ViewState?
【发布时间】:2016-11-28 12:14:08
【问题描述】:

您好,我正在尝试在回发后保存 request.form 中的值。我尝试在输入字符串上使用 viewstate,但 page_load 不断重新生成 request.form

string TID = null;
Protected void Page_Load(object sender, EventArgs e)
{
     if (TID == null)
     {  
            TID= Request.Form ["totalID"];
      }
      Label1.Text = TID;
}

protected void Button2_Click (object sender, EventArgs e)
{
     Label1.Text = TID;
}

【问题讨论】:

    标签: c# postback viewstate request.form


    【解决方案1】:

    大多数 asp.net 控件都有一个 text 属性,因此如果您的控件是 TextBox 并且您将其命名为 textBoxTotalID,那么您只需获取使用 this.textBoxTotalID.Text 输入的值。

    不要使用totalID,而是使用元素的名称而不是Id。该名称用于将信息发布到服务器。并且还要确保您在视图中为您在发布时需要其值的元素指定了一个名称。

    除此之外,问问自己这个问题:您是否需要在用户请求页面时或仅在提交表单时才这样做?我相信您的答案仅在提交表单时。在这种情况下,只有当IsPostBack 是true 时才这样做。

    【讨论】:

    • 您是否改变了看法?请让我看看你的观点的代码。
    【解决方案2】:

    尝试向IsPostBack 属性添加检查。

    if (IsPostBack)
    {
        //Set Values here
    }
    

    当页面响应来自表单提交的回发或可能触发的控制事件时,此设置为true。

    【讨论】:

    • 这并不能解决他的问题,但你说的是正确的。因此,它应该是一个注释,以便 OP 可以改进他的代码。如果您发表了评论,我会投赞成票,因为这是一个很好的评论。但不是一个好的答案。
    • 您好,我尝试添加评论,但对这个网站来说是新手.. 它没有让我...说我的声誉不够高:(
    猜你喜欢
    • 2012-02-22
    • 1970-01-01
    • 2013-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多