2009-09-17 6 views

Répondre

5

Essentiellement, il émet une étiquette

<form> 

dans la sortie HTML. La balise de formulaire est obligatoire si votre page POST (c'est-à-dire si vous appuyez sur un bouton pour envoyer le formulaire), afin que le navigateur sache où envoyer le formulaire. La raison pour laquelle cela pourrait fonctionner en ce moment pour vous, c'est parce que vous pourriez ne pas avoir de boutons - liens jsut (je ne sais pas ce que votre application est, donc juste deviner ici). En bref: si vous voulez pouvoir soumettre un formulaire à une action, oui, cette balise est obligatoire. Si vous le faites à travers des liens, vous n'avez pas besoin d'une étiquette de formulaire, et donc BeginForm n'est pas vraiment nécessaire.

HTH.

P.S. lire les articles de blog de Scott Guthrie sur ASP.NET MVC, ils vraiment aider beaucoup pour vous aider à démarrer.

+0

Pas vraiment sûr de savoir comment cela répond à la vraie question. –

+0

Je peux écrire mes propres étiquettes de forme et d'action et elles fonctionneront bien. Le but de cette méthode est d'extraire la fonctionnalité et de la rendre adaptable. –

0

Ce n'est pas du tout nécessaire. C'est simplement un assistant qui gère la configuration des tags de formulaire. C'est une bonne idée de l'utiliser cependant. Mon intuition dit qu'ils vont améliorer cette aide pour gérer des choses comme les attaques XSS, etc. que vous avez actuellement à gérer en utilisant l'assistant AntiForgeryToken et l'attribut associé. BeginForm() écrit simplement l'étiquette de formulaire en utilisant les paramètres qui lui sont fournis.

3

Si vous n'avez pas de formulaire, vous ne le ferez pas ou si vous effectuez toute l'interaction de votre page avec AJAX, vous n'en aurez peut-être pas besoin. Si vous avez seulement des liens sur la page, alors un formulaire est inutile. Cependant, à moins d'utiliser AJAX, vous ne pouvez pas faire de requêtes POST à ​​vos actions de contrôleur sans l'utiliser pour injecter votre balise de formulaire ou injecter votre balise de formulaire manuellement.

Questions connexes