在Asp中使用POST方法重定向到URL.净Core3.1



我使用的是Asp.net core 3.1,我必须将用户重定向到Post Action url,我该怎么办?这可能吗?

public async Task<IActionResult> RedirectTo()
{
// do something to generate a url 
// redirectUrl = "https://xx.com/?token=zzzzz"

redirect and Post to redirectUrl //how ???????????????????  
}

查看此处了解为什么不支持

你不能真的这样做,但是,这里有一个聪明的解决方法

HttpResponse response = HttpContext.Current.Response;
response.Clear();
StringBuilder s = new StringBuilder();
s.Append("<html>");
s.AppendFormat("<body onload='document.forms["form"].submit()'>");
s.AppendFormat("<form name='form' action='{0}' method='post'>", url);
foreach (string key in data)
{
s.AppendFormat("<input type='hidden' name='{0}' value='{1}' />", key, data[key]);
}
s.Append("</form></body></html>");
response.Write(s.ToString());
response.End();

这是做什么,是创建一个html响应与表单,将发送请求到所需的页面与javascript。

您需要在同一域中才能正常工作。如果要重定向,则只能使用GET参数。

最新更新