如何使用 post 方法将用户发送到另一个页面(外部 url)

how to send user to another page (external url) with post method

我想使用 post 方法将用户重定向到 asp.net 核心中的支付页面。

我在 asp.net 中是这样做的:

    public void Post()
    {
        HttpContext.Current.Response.Clear();
        HttpContext.Current.Response.Write("<html><head>");
        HttpContext.Current.Response.Write(string.Format("</head><body onload=\"document.{0}.submit()\">", m_FormName));
        HttpContext.Current.Response.Write(string.Format("<form name=\"{0}\" method=\"{1}\" action=\"{2}\" >", m_FormName, m_Method, m_Url));
        for (int i = 0; i < Inputs.Keys.Count; i++)
        {
            HttpContext.Current.Response.Write(string.Format("<input name=\"{0}\" type=\"hidden\" value=\"{1}\">", Inputs.Keys[i], Inputs[Inputs.Keys[i]]));
        }
        HttpContext.Current.Response.Write("</form>");
        HttpContext.Current.Response.Write("</body></html>");
    }

我应该使用:

HttpContext.Response.WriteAsync

如果是的话,如果 await 写了这么多行,它是如何工作的。

有什么更好的方法吗?

你想做的事是不可能的。没有办法让客户端发出 POST。您不能让客户做 任何事情。您可以 建议 他们请求另一个 URL (重定向),但是 100% 取决于客户是否真的这样做,以及客户何时以及是否这样做,它将仅通过 GET 请求。

启动这样一个流程的唯一方法是向用户呈现一个 HTML 表单,其中包含一个提交按钮和一个您希望他们从哪里开始流程的操作。然后在客户端单击该按钮。

您可以使用状态码 308 的重定向,我认为这个答案是最好的''