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

时间:2019-09-03 09:57:38

标签: asp.net asp.net-core httpcontext

我想使用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

如果是的话,如果等待那么多行写入,它将如何工作。

还有更好的方法吗?

2 个答案:

答案 0 :(得分:0)

您想做的事情是不可能的。无法使客户端发出POST。您不能让客户端执行任何操作。您可以建议,他们要求另一个URL(重定向),但是是否实际执行此操作取决于客户端,并且取决于客户端何时以及是否这样做,将通过GET来请求它

启动这样的流程的唯一方法是向用户呈现一个带有提交按钮的HTML表单,并向用户显示您希望他们开始该流程的位置的操作。然后在客户端上单击该按钮。

答案 1 :(得分:0)

您可以使用状态码为308的重定向,我认为这个答案是最好的'Redirect to URL with POST method in Asp.Net Core'