Вы можете сделать следующее: вернуть результат действия, который испускает форму с полями и использует некоторый JavaScript для автоматической публикации выпущенной формы.
Вот код для HttpPostResult
public class HttpPostResult :
ActionResult
{
string _formName;
NameValueCollection _inputs;
string _url;
public HttpPostResult(
string url ,
NameValueCollection inputs ,
string formName = "form1")
{
_url = url;
_inputs = inputs;
_formName = formName;
}
public override void ExecuteResult(ControllerContext context)
{
// Html generation
var html = new StringBuilder();
html.Append("<html><body onload=\"document.form1.submit()\">");
html.AppendFormat(
"<form name=\"{0}\" method=\"POST\" action=\"{1}\">" ,
_formName ,
_url
);
foreach(var key in _inputs.AllKeys)
html.AppendFormat(
"<input name=\"{0}\" type=\"hidden\" value=\"{1}\">" ,
key ,
_inputs[ key ]
);
html.Append("</form></body></html>");
// Write to Response stream
context.HttpContext.Response.Write(html.ToString());
context.HttpContext.Response.End();
}
}
Тогда, когда требуется результат действия в контроллерах вернуть POST, а не GET использование:
return new HttpPostResult(url , inputs);
Спасибо! Я создам представление со всеми скрытыми полями и использую js, чтобы нажать кнопку отправки. – Debra