Question

De quelle manière 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 PR5 utilise désormais simplement l'URL fournie par la requête.Cependant, quelque chose à ce sujet ne me convient pas, d'autant plus que je recevrai tout le bagage de toutes les chaînes de requête incluses.

Quelle est votre opinion ?

Était-ce utile?

La solution

La deuxième façon, certainement.La première méthode est centrée sur le programmeur, ce qui n'est pas le but de la partie V de MVC.La deuxième méthode est plus centrée sur le concepteur, ne se liant au modèle que là où cela est nécessaire, laissant le HTML aussi naturel que possible.

Autres conseils

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

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

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

Je suis totalement de l'avis du HTML à l'ancienne, c'est ce que les concepteurs utilisent.Je n'aime pas inclure trop de syntaxe centrée sur le code pour cette raison.Je traite le moteur d'affichage du formulaire Web comme une bibliothèque tierce, car je l'ai remplacé par un moteur d'affichage différent.Si vous n'aimez pas le fonctionnement du modèle d'affichage du formulaire Web ou la direction dans laquelle il va, vous pouvez toujours suivre un chemin différent.C'est l'une des principales raisons pour lesquelles j'aime ASP.NET MVC.

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'assistant .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 du 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 très facile de franchir la frontière entre le contrôleur et la vue si vous ne faites pas attention.Personnellement, je ne supporte pas d'utiliser C# comme moteur de modèles sans que mes yeux saignent ou que j'aie envie d'assassiner quelqu'un.Cela m'aide à garder ma logique séparée, la logique du contrôleur en C#, à afficher la logique en brail.

La raison d'utiliser des assistants est qu'ils vous permettent d'encapsuler des modèles communs de manière cohérente et SÈCHE.Considérez-les comme un moyen de refactoriser les vues pour supprimer la duplication, comme vous le feriez avec du code normal.

Par exemple, je blogué à propos de certains assistants RESTful NHaml qui peuvent créer des URL basées sur un modèle.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top