У меня есть старая страница, сделанная в aspx, которая получает каждый Request.Form.Keys
и делает POST с использованием формы на другой странице (это похоже на "HTTP POST REDIRECT")
Теперь эта система должна быть перенесена в Web API (2.1), и я должен подражать ей.
Трюк с этим заключается в том, что aspx получает любые/несколько ключей и значений, вы можете отправлять что-либо в aspx. Но я не могу получить тот же результат с моим методом POST в web api, потому что он ожидает, что объект как есть (и я этого не знаю, и мне все равно)
Я не знаю, поможет ли это, но код старой aspx похож на этот:
sb.Append("<html>");
sb.AppendFormat("<body onload='document.forms[0].submit()'>Loading...");
sb.AppendFormat("<form action='{0}' method='post'>",
the-next-url);
foreach (string key in Request.Form.Keys)
{
sb.AppendFormat("<input type='hidden' name='{0}' value='{1}'>", key, Request.Form[key]);
}
sb.Append("</form>");
sb.Append("</body>");
sb.Append("</html>");
Response.Write(sb.ToString());
Вы могли бы реорганизовать свой код, я полагаю, использовать что-то вроде этого:
if (HttpContext.Current.Request.Form.Count > 0)
{
sb.Append("<html>");
sb.AppendFormat("<body onload='document.forms[0].submit()'>Loading...");
sb.AppendFormat("<form action='{0}' method='post'>",your_url);
foreach (string key in HttpContext.Current.Request.Form.AllKeys)
{
sb.AppendFormat("<input type='hidden' name='{0}' value='{1}'>", key,
HttpContext.Current.Request.Form[key]);
}
sb.Append("</form>");
sb.Append("</body>");
sb.Append("</html>");
}
Наконец, я просто использую внутри своего метода:
HttpContext.Current.Request.Form
получить все ключи и значения POST вместо Request.Form