2008-09-03 6 views
3

De quelle façon préférez-vous créer vos formulaires dans MVC?De quelle façon préférez-vous créer vos formulaires dans MVC?

<% Html.Form() { %> 
<% } %> 

Ou

<form action="<%= Url.Action("ManageImage", "UserAccount") %>" method="post"> 
</form> 

Je comprends que Html.Form() à partir de maintenant PR5 utilise simplement l'URL fournie par la demande. Cependant, quelque chose à ce sujet ne me convient pas, d'autant plus que je vais avoir tous les bagages de toutes les querystrings qui sont inclus.

Quelle est votre opinion?

Répondre

7

La deuxième façon, définitivement. La première façon est centrée sur le programmeur, ce qui n'est pas le cas de la partie V de MVC. La deuxième façon est plus centrée sur le concepteur, seulement lier le modèle là où c'est nécessaire, laissant le HTML aussi naturel que possible.

+1

Je me retrouve à le faire la première fois, surtout. Je suis un hypocrite. – Will

3

Dans l'ensemble, je pense que je suis un peu old-school car je préfère rouler mes propres éléments HTML.

Je préfère également un moteur de vue comme NHaml, ce qui rend l'écriture HTML presque un ordre de grandeur plus simple.

1

Je suis d'accord avec vous deux, je ne suis pas vraiment comme ce style WebForms simpliste qui semble s'intégrer à MVC. Ce truc semble presque être une bibliothèque tierce ou à tout le moins une bibliothèque d'extensions qui peut être incluse si nécessaire ou souhaitée.

1

Je suis totalement d'accord avec le HTML old school, c'est ce que les concepteurs utilisent. Je n'aime pas inclure beaucoup de syntaxe centrée sur le code pour cette raison. Je traite le moteur de vue de formulaire Web comme une bibliothèque tierce, car je l'ai remplacé par un autre moteur de vue. Si vous n'aimez pas la façon dont le modèle de vue de formulaire Web fonctionne ou la direction qu'il prend, vous pouvez toujours go a different route. C'est l'une des principales raisons pour lesquelles j'aime ASP.NET MVC.

0

La raison de l'utilisation des aides est qu'elles vous permettent d'encapsuler des motifs communs de manière cohérente et SÈCHE. Considérez-les comme un moyen de refactoriser les vues pour supprimer la duplication, tout comme vous le feriez avec du code ordinaire.

Par exemple, I blogged à propos de certains helpers NHAMl RESTful pouvant générer des URL basées sur un modèle.

1

Je suis d'accord avec Andrew Peters, DRY. Il convient également de souligner que vous pouvez spécifier votre contrôleur, votre action et vos paramètres à l'aide .Form() et s'ils correspondent à vos règles de routage, aucun paramètre de chaîne de requête ne sera utilisé.

Je comprends aussi ce que Will disait à propos de la V dans MVC. À mon avis, je ne pense pas que ce soit un problème de mettre du code dans la vue tant que c'est pour la vue. Il est vraiment facile de franchir la ligne entre le contrôleur et la vue si vous ne faites pas attention. Personnellement, je ne peux pas supporter d'utiliser C# comme moteur de gabarit sans que mes yeux ne saignent ou n'éprouvent l'envie de tuer quelqu'un. Cela m'aide à garder ma logique séparée, la logique du contrôleur en C#, la logique en braille.

Questions connexes