2011-07-15 2 views
5

Je travaille actuellement sur une application ASP.NET MVC 3 où j'ai une vue particulière qui est configuré comme un assistant (en utilisant un plugin jQuery). Chacune des étapes de l'assistant fait partie d'un seul formulaire, où chaque "étape" est divisée en son propre élément <div>. J'ai décidé de créer des vues partielles pour le contenu de chaque "étape". Je l'ai fait pour quelques raisons. Un étant qu'il garde le code pour chaque étape propre et organisée. L'autre étant qu'il me permet d'inclure ou d'exclure plus facilement/proprement les étapes de l'assistant côté serveur.Est-il considéré comme une mauvaise pratique de diviser un seul formulaire entre plusieurs vues partielles?

En ce moment, mon point de vue « principale » ressemble à quelque chose comme ce qui suit:

@using (Html.BeginForm) 
{ 
    <div class="step" id="step1"> 
     @Html.Partial("Step1") 
    </div> 

    <div class="step" id="step2"> 
     @Html.Partial("Step2") 
    </div> 
} 

Je me demande si faire quelque chose comme cela serait considéré comme une mauvaise pratique et si je devrais consolider le code pour toutes les « étapes "dans une vue unique?

Répondre

2

Non, rien de fondamentalement mauvais avec cette approche.

Il y a un léger surcoût de performance, mais cela ne devrait pas avoir de conséquences.

Si cela vous facilite le développement et l'entretien, n'hésitez pas. Editer: Si vous êtes inquiet au sujet des sous-modèles de mappage, comme nous l'avons mentionné dans les commentaires, pensez à utiliser ViewData.ModelMetadata.PropertyName dans la vue partielle pour dériver les ID des contrôles d'entrée.

+0

Merci Steve. Le problème avec lequel j'ai été confronté est comment gérer le modèle de vue. J'aime généralement avoir un modèle de vue par vue/vue partielle. Si j'ai créé les modèles de vue pour chacune des vues partielles et que je les ai passés en tant que paramètres à 'Html.Partial', ne pourrais-je pas potentiellement rencontrer des problèmes de liaison lorsque le formulaire est renvoyé au serveur/contrôleur? –

+0

Cette approche pourrait être utile dans certains cas aussi. Si votre Step2 partiel a été conçu d'une manière, il pourrait être réutilisé. Par exemple, peut-être que Step2 pourrait être utilisé sur une page Create/Insert et aussi sur une page qui sert de fonction Update/Edit. –

+0

Tant que les identifiants des champs d'entrée sont relatifs au modèle parent, vous ne le ferez pas. Mais si vous n'allez pas réutiliser les vues partielles avec d'autres modèles, il n'y a aucun besoin réel de passer autre chose que le modèle principal. –

Questions connexes