如何在重定向上保留“发布数据”

时间:2013-12-06 10:19:16

标签: asp.net http redirect webforms

我想将/ mynode中的帖子重定向到/ eng / mynode /并保留表单数据。 我尝试过“Server.Transfer”但是我收到一条错误消息“执行/ en / mynode的子请求时出错”。

我想以一般方式实现它,例如在基页的OnPreInit()方法中。

你还有其他选择吗?

P.S。当您使用Server.Transfer时,“转移到的页面应该是另一个.aspx页面。例如,转移到.asp或.asmx页面无效”。见source

1 个答案:

答案 0 :(得分:2)

我想你可以这样写:

protected void Page_Load(object sender, EventArgs e) {
  Response.Clear();
  Response.Write(@"<html>");
  Response.Write(@"<body>");
  Response.Write(@"<form id=""form"" action=""/eng/mynode/"" method=""post"" enctype=""application/x-www-form-urlencoded"">");
  for(int i = 0; i < Request.Form.Count; i++) {
    var key = Request.Form.GetKey(i);
    var values = Request.Form.GetValues(i);
    foreach(var value in values) {
      Response.Write(string.Format(@"<input type=""hidden"" name=""{0}"" value=""{1}"" />", key, Server.HtmlEncode(value)));
    }
  }
  Response.Write(@"</form>");
  Response.Write(@"<script>document.getElementById(""form"").submit();</script>");
  Response.Write(@"</body>");
  Response.Write(@"</html>");
}