2009-04-23 8 views
1

Dans notre ancien système, nous avions des pages rendues à partir de XSLT. Afin de changer la page en mode "edit" nous aurions un bouton quelconque, une fois cliqué aurait un drapeau EditYN qui serait passé à la procédure stockée. La procédure stockée redonnerait simplement cette variable pour indiquer que la page était en mode d'édition. Cela signifiait que les chaînes de requête, les données viewstate ou de session n'étaient pas requises pour indiquer que la page était en mode édition.ASP.NET MVC Modification de page Contraste aux formulaires Web

J'ai eu affaire avec ASP.NET MVC seulement pour la dernière semaine à des fins RND au travail. Je me demande quelle est la meilleure façon d'avoir une page qui affiche des données, pour ensuite se transformer en une page où vous pouvez modifier toutes ces données? Devriez-vous passer à une page séparée? Devriez-vous rester sur la même page et avoir une logique de rendu dans la vue pour montrer le mode d'édition de la page?

Alors que sur le même sujet, je pensais aussi poser des questions sur GridViews et leur place dans l'architecture MVC. Auparavant, nous utilisions simplement des sources de données et les configurions avec GridView. Ensuite, le GridView pourrait entrer en mode d'édition assez facilement par lui-même avec la requête UPDATE définie dans la source de données. Comment ce processus devrait-il être fait en utilisant MVC?

Répondre

2

Créez un bouton de soumission pour votre mode d'édition. L'action du contrôleur répond à POST, définissez l'indicateur "InEdit" dans votre modèle, puis renvoyez la même vue à nouveau. La vue peut alors s'afficher en fonction du drapeau. Mais je préférerais créer deux vues différentes, pour les modes d'affichage et d'édition, puis, en fonction de l'analyse de l'indicateur effectuée dans l'action du contrôleur, retourner simplement l'une ou l'autre vue.

+0

Il est bon de savoir que quelqu'un d'autre ferait deux vues différentes. C'est généralement mal vu à mon travail, mais je ne l'ai jamais vu comme une mauvaise chose. – Kezzer

+0

Dans mon travail, nous avons aussi beaucoup de pages qui changent elles-mêmes en fonction de certaines conditions. Je sais combien il est difficile de gérer ces conditions dans la logique de rendu. Dernièrement, on a compris qu'il est préférable de créer une page séparée (vue) plutôt que d'ajouter des conditions de commutation. – User

0

Alors que sur le même sujet, je pensais Je voudrais aussi poser des questions sur GridViews et leur place dans l'architecture MVC. Comment ce processus devrait-il être fait en utilisant MVC?

Vous pouvez utiliser javascript, like jqGrid ou Yahoo´s datatable. Pour les datatables plus simples, vous pouvez utiliser le tablesorter de jQuery. Sur le backend, votre contrôleur renvoie des objets json qui peuvent être modifiés par le client, c'est-à-dire. la grille javascript qui renvoie ensuite les données au contrôleur pour être sauvegardé.

+0

Cela renforce-t-il le fait que GridView ne devrait pas être utilisé? – Kezzer

+0

Le gridview asp.net? C'est un contrôle côté serveur, et vous ne pouvez pas utiliser les contrôles côté serveur avec asp.net mvc. – Morph

+0

@Morph: Donc, notre seule option est de rendre les éléments manuellement sur la page? – Kezzer

Questions connexes