0

我正在尝试创建一个无会话网站,在该网站中我使用 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();
4

1 回答 1

0

为了保持它们的值,隐藏字段需要标记为runat="server".That would be me first appraoch - 但是,如果您使用字符串构造表单,我认为这不会起作用(表单也需要是runat="server"

实际上查看您的代码-您已经绕过了网络表单-因此您显然没有使用它们。所以我要么使用上面的网络表单,要么使用带有适当模型的 MVC 方法,如果正确执行,它将具有维持状态的效果。

或者,可以在回发时从 Request 对象中获取这些值——虽然有点老派。

于 2012-07-05T07:19:38.997 回答