2010-05-03 3 views
2

Je veux créer des formulaires dynamiques sur une page MVC qui va générer quelque chose comme ça.Dynamic Forms et AntiForgeryToken MVC

onclick=" 
    var f = document.createElement('form'); 
    f.style.display = 'none'; 
    this.parentNode.appendChild(f); 
    f.method = 'POST'; 
    f.action = this.href; 
    var s = document.createElement('input'); 
    s.setAttribute('type', 'hidden'); 
    s.setAttribute('name', 'authenticity_token'); 
    s.setAttribute('value', '6I6td2wJRI9Nu5Au/F3EfOQhxJbEMXabuVXM0nXonkY='); 
    f.appendChild(s); 
    f.submit(); 
    return false;" 

Je ne suis pas sûr que je peux mettre en œuvre le AntiForgeryToken sur quelque chose comme ci-dessus?!? tout helpwould être apprécié

Répondre

2

Il semble que vous appelez formes dynamiques est en fait un effort pour convertir des liens d'ancrage en formes afin que vous puissiez POST au lieu de GET. Dans ce cas, je vous recommande de générer le formulaire directement sur le serveur au lieu de prendre la peine d'émettre un lien qui vous tourneriez plus tard dans un formulaire en utilisant tout ce javascript en cas onclick:

Ainsi, au lieu de:

<%= Html.ActionLink("OK", "controller", "action", null, 
    new { onclick = "Some ugly javascript" })%> 

vous pourriez directement:

<% using (Html.BeginForm("controller", "action")) { %> 
    <%= Html.AntiForgeryToken() %> 
    <input type="submit" value="OK" /> 
<% } %> 
Questions connexes