当响应的HTTP报头中包含一些POST数据时,我希望将响应重定向到另一个URL。
// Inside an ASP.NET page code behind:
Response.Redirect("http://www.example.com/?data=sent%20via%20GET");
// This will sent data to http://www.example.com via GET.
// I want to POST this data to http://www.example.com instead.
如何在ASP.NET中做到这一点?
发布于 2011-05-20 01:06:10
你也可以用这个技巧发送大量的数据。
Response.Clear();
StringBuilder sb = new StringBuilder();
sb.Append("<html>");
sb.AppendFormat(@"<body onload='document.forms[""form""].submit()'>");
sb.AppendFormat("<form name='form' action='{0}' method='post'>",postbackUrl);
sb.AppendFormat("<input type='hidden' name='id' value='{0}'>", id);
// Other params go here
sb.Append("</form>");
sb.Append("</body>");
sb.Append("</html>");
Response.Write(sb.ToString());
Response.End();
发布于 2011-05-20 00:59:06
你不能使用重定向发帖。根据定义,重定向是指服务器将302重定向HTTP状态代码发送到具有新位置的客户端,以便客户端向该新位置发出GET请求。这就是HTTP协议的工作方式,你对此无能为力。
因此,实现这一点的一种方法是重定向到某个临时页面,该页面将包含一个带有method="POST"
的超文本标记语言<form>
,并包含您希望作为隐藏字段发送的值。然后,您可以使用javascript自动提交此表单。
发布于 2016-07-14 10:33:26
您可以使用viewstate来“传输”数据,并在新页面甚至同一页面上读取数据。
https://stackoverflow.com/questions/6062078
复制相似问题