隐藏字段在回发时丢失内容

时间:2012-07-05 07:02:40

标签: asp.net session-state html-form

我正在尝试创建一个无会话的网站,我在其中使用StringBuilder将数据发布到另一个表单。问题是,在将数据发布到其他表单后,页面正确加载,但如果我重新加载页面或点击输入,则隐藏字段会丢失其值。

例如

页面A使用StringBuilder发布到页面B,页面B获取表单数据并将其保存在隐藏字段中,但现在如果我刷新页面,一切都将丢失:

        StringBuilder sb = new StringBuilder();
        sb.Append("<html>");
        sb.AppendFormat(@"<body onload='document.forms[""form""].submit()'>");
        sb.AppendFormat("<form name='form' action='{0}' method='post'>", "page2.aspx");
        sb.AppendFormat("<input type='hidden' name='param1'  value='{0}'>", param1.Value);
        sb.AppendFormat("<input type='hidden' name='param2'  value='{0}'>", param2.Value);

        sb.Append("</form>");
        sb.Append("</body>");
        sb.Append("</html>");

        Response.Write(sb.ToString());

        Response.End();

1 个答案:

答案 0 :(得分:0)

为了保持他们的价值,隐藏的字段需要标记在runat="server".这将是我的第一个appraoch - 但是如果你用字符串构建表单我也不认为这会有效(同样表格需要runat="server"

实际上看着你的代码 - 你已经绕过了网络形式 - 所以你显然没有使用它们。所以我要么使用上面的webforms,要么使用适当模型的MVC方法,如果正确的话,它将具有维持状态的效果。

或者,可以从Post back-bit old school上的Request对象中获取值。