Vous pouvez effectuer les opérations suivantes: Renvoyer un résultat d'action qui émet un formulaire avec les champs et utilise du JavaScript pour publier automatiquement le formulaire émis.
Voici le code pour 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();
}
}
Puis, quand vous avez besoin d'un résultat d'action dans vos contrôleurs pour retourner un POST et non une utilisation GET:
return new HttpPostResult(url , inputs);
Merci! Je vais créer une vue avec tous les champs cachés et utiliser js pour cliquer sur le bouton soumettre. – Debra