2010-01-28 4 views
3

Travailler depuis des mois dans ASP.NET MVC Je commence à tourner en rond - Je suis constamment en train de faire des modifications dans les vues qui sont identiques à Créer des vues. Devrais-je continuer à abandonner les vues d'édition et essayer de créer une vue à la fois pour créer et éditer? Parce qu'ils sont essentiellement les mêmes, ils font la même validation que la seule différence dans le contrôleur où je fais la mise à jour au lieu de créer. Et je peux le faire avec une simple instruction if..else - si un objet est trouvé dans datastore, faites la mise à jour, sinon faites le create.ASP.NET Créer une vue identique à Modifier?

Qu'en pensez-vous? Est-il probable que je rencontre des problèmes dans le futur si je décide de me débarrasser des vues d'édition ??

Précision:

La principale question est: Quel genre de changements/besoins de l'entreprise pourrait trouver cela nécessiterait séparé Créer/modifier? C'est en fait ce que je voudrais savoir. Parce que si nous avons un objet Page, qui a, par exemple, ces propriétés: Titre, URL, Actif, etc. et exige que ces champs soient entrés dans Créer, pourquoi les autoriserions-nous à être vides pour quelque raison que ce soit?

Thanx

Répondre

3

Utilisez un UserControl (Form.ascx par exemple), et l'utiliser dans les deux Create.aspx et Edit.aspx

<% using (var form = Html.BeginForm()) { 
    Html.RenderPartial("Form"); 
<% } %> 

De cette façon, la Poste se passe en chacun Créer Modifier les méthodes du contrôleur, vous pouvez également dans les deux méthodes appeler la même méthode de validation, et faire l'insertion ou la mise à jour respective.

+0

+1 Bonne réponse. Les vues partielles rendent la vie beaucoup plus facile. Une chose à noter est que le partial doit être fortement typé afin que vous puissiez passer l'objet modèle avec la vue edit. –

+2

Encore une chose à l'OP. consultez le tutoriel NerdDinner. À la page 111, ScottGu montre exactement comment faire ce dont Alex parle avec des vues partielles. Trouvez le tutoriel ici: http://aspnetmvcbook.s3.amazonaws.com/aspnetmvc-nerdinner_v1.pdf –

+0

C'est en fait ce que j'ai fait jusqu'à présent. Avec les Partials mais le contrôle de View User a été scindé - je veux dire Create.ascx et Edit.ascx et ensuite Create.aspx et Edit.aspx et c'est vraiment gênant de le faire quand tous les champs d'objet sont identiques. Il suffit de copier et de renommer les fichiers, ce qui me semble faux. – mare

0

Dans votre modèle de vue personnalisée, vous pouvez passer un paramètre par exemple: EditMode avec le mode que vous utilisez actuellement (modifier ou créer) et prendre une ANME d'action differemnt en fonction de ce mode

1

S'il vous en coûte toujours le développement le temps, alors je les rejoindrais ... s'occupe d'eux quand le temps viendra.

En outre, vous voudrez peut-être voir si vous pouvez utiliser la génération de code pour faciliter certains de vos problèmes si vous voulez les séparer. (Je suppose que les problèmes surviennent lorsque vous devez ajouter ou supprimer un nouveau champ des deux?)

+0

Exactement. Lorsque j'ajoute ou supprime un champ, je dois apporter des modifications à deux fichiers. – mare

Questions connexes