我最近尝试使用asp.net POST方法并提出了一些问题
我问这个当我尝试使用post方法时,它不允许我更改表单的操作,并允许每页只使用一个服务器端表单。
我所做的是创建自己的表单控件并在页面上使用它
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'>", "https://test.com.au/Login/Account/Login.aspx");
sb.AppendFormat("<input type='hidden' name='AP' value='{0}'>", "99");
// Other params go here
sb.Append("</form>");
sb.Append("</body>");
sb.Append("</html>");
Response.Write(sb.ToString());
Response.End();
导航到目标网址后,我尝试使用浏览器后退按钮,但它无法正常工作。我简直无法导航回来?
这是asp.net的问题还是我错过了什么?
实际上我正在进行支付度假,它需要在POST方法中传递参数
答案 0 :(得分:0)
您尝试返回,然后返回 - 但上一页是自动制作“回发后”,因此您将移动到您再次访问的页面。
所以后面的工作,你实际上后退 - 你所做的就是你的问题。
正确的方法是“渲染”您在页面的一部分上显示的所有表单,并且输入点击提交,您只需直接提交该表单,而不是制作自动发布的第二页
我知道asp.net只允许一种形式的问题,但有一些替代方案。您可以阅读以下答案:Cross-page posting. Is it a good pratice to use PreviousPage in Asp.net?
现在,因为您说您进行了付款,所以最好是在asp.net的形式之后使用自定义提交表单完全呈现页面。你实际上根本没有使用asp.net表单而只是渲染你的参数,就像你上面那样,你让用户只需点击提交并移动大门。