2009-07-30 7 views
0

Peut-être que je complique cela, mais vous m'inspirerez à coup sûr.Paramètres de configuration dans ASP.NET MVC

Imaginez une page où une liste est affichée. Cette liste est paginée. Je spécifie la liste affiche 30 éléments, donc le contrôleur retourne mes 30 éléments et la vue rend les 30 éléments. Ma question est la suivante: le contrôleur et la vue doivent connaître le réglage 30. Où devrait-il être stocké? Web.config? Je pense si le partage configs via web.config qui sont utilisés dans les « couches » est une bonne pratique ...

TKS à l'avance

Répondre

0

Web.config est très bien. Avez-vous envisagé de laisser la longueur de la page être dynamique, peut-être en fonction d'une valeur de chaîne de requête? (De toute façon, vous aurez toujours besoin d'un défaut stocké ou codé en dur quelque part)

De même, je suis probablement en train d'analyser les mots ici, mais vous ne voulez pas que votre vue soit explicitement connue de ce paramètre (c.-à-d. , en accédant directement à la valeur web.config). Il devrait juste itérer la liste des éléments que le contrôleur passe, indépendamment de la quantité.

+0

D'accord, et l'option querystring est une autre raison pour laquelle la vue ne doit pas savoir d'où provient le paramètre. Toute cette logique vivrait dans votre contrôleur (ou, si cela devenait assez compliqué, peut-être un modèle). – krohrbaugh

+0

Ce que j'ai dit n'est pas tout à fait correct, désolé pour cela. Ce que j'ai est un certain nombre de colonnes et de lignes, disons 3 colonnes par 10 lignes, obtenant les 30 éléments à récupérer. J'ai besoin de la paire de valeurs dans la vue afin qu'elle puisse être assez intelligente pour générer une mise en page appropriée, et j'en ai besoin dans le contrôleur pour qu'elle sache qu'elle doit extraire 3 * 10 enregistrements. Passer ces paramètres dans la chaîne de requête n'est pas une bonne idée, car l'utilisateur pourrait jouer avec eux pour casser la mise en page. Je suppose que je vais les ajouter au web.config. Merci à vous deux pour vos réponses;) – Dante

+1

Je pensais à cela et ne devrait pas être la bonne façon de mettre en œuvre: - Le contrôleur lit web.config (10 lignes par 3 paramètres cols); - Le contrôleur obtient 10x3 éléments de la base de données; - Le contrôleur envoie 30 éléments à la vue, ainsi que le nombre de colonnes et de lignes qu'il doit générer. Cela laisserait la vue totalement aveugle concernant les configurations ... – Dante

1

Je ne pense pas que ce que vous décrivez viole la séparation des préoccupations. Les données de conception sont partagées entre les couches d'une application MVC, car la vue doit obtenir les données d'une manière ou d'une autre.

Ce que vous ne devez pas faire est d'avoir la vue comment pour obtenir les données. En d'autres termes, votre vue ne doit pas savoir d'où provient ce paramètre "30", de sorte que vous puissiez le modifier à l'avenir sans apporter les modifications nécessaires à la vue.

Questions connexes