Question

Je développe une application ASP.NET MVC où le contenu pour une page peut être tirée de la base de données, si elle existe, et affiché sur la page.

est de permettre aux personnes non-techniques pour modifier le contenu sans avoir à entrer dans le code source (par exemple des vues) et changer les choses.

La façon dont je le fais est, chaque contrôleur dérive d'un contrôleur de base. Le contrôleur de surcharge base « OnActionExecuted » et saisit cette occasion pour tirer tout contenu affecté à l'action en cours / contrôleur.

Si l'action renvoie un ViewModel qui dérive de « ContentViewModel », il Remplit la propriété « Texte » du ViewModel avec le texte de la base de données.

Et le texte est rendu par la vue.

Pouvez-vous voir une faiblesse à cette conception?

Serait-il préférable, plutôt que d'avoir un contrôleur de base, j'avais des extensions HtmlHelper pour tirer le contenu, que j'appelle de la vue?

Une raison pour laquelle je pose cette question, avoir mon propre contrôleur de base semble interférer avec l'appel « Html.RenderAction », qui semble attendre le contrôleur spécifié hérite directement de « System.Web.Mvc.Controller ».

Était-ce utile?

La solution

  1. ActionFilters ne doivent pas être utilisés pour tirer le contenu.

  2. Les contrôleurs ne doivent pas être utilisés pour tirer le contenu mais seulement d'expédier les requêtes entrantes en appliquant une logique simple.

  3. Aides HTML ne doit pas être utilisé pour tirer tout contenu. Ils sont destinés à rendre les éléments de l'interface utilisateur préremplis avec les données fournies.

  

application où le contenu pour une page peut être tirée de la base de données

C'est essentiellement la façon dont la plupart des applications fonctionnent.

  

est de permettre aux personnes non-techniques pour modifier le contenu sans avoir à entrer dans le code source (par exemple des vues) et changer les choses.

Pour les personnes non-techniques pour modifier le contenu, il devrait y avoir une interface utilisateur appropriée. Indépendamment du projet technologie sous-jacente, personnel non technique est censé ne jamais modifier le code.

Je vous suggère de ne pas faire quelque chose de bizarre, mais garder les choses claires. Mettre en œuvre votre couche d'affaires qui fournira les données aux modèles qui la vue sera rendu. Créer une interface utilisateur pour d'autres personnes pour modifier le contenu.

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