我使用的是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参数。