Simple ASP.NET MVC vues sans l'écriture d'un contrôleur
Nous construisons un site qui vous ont très peu de code, c'est surtout juste va être un tas de pages statiques servi. Je sais que dans le temps qui va changer et nous allons vous voulez échanger en plus de l'information dynamique, j'ai donc décidé d'aller de l'avant et construire une application web à l'aide de ASP.NET MVC2 et l'Étincelle du moteur d'affichage. Il y aura un couple de contrôleurs qui ont à faire (comme dans le /les produits de la zone), mais plus il sera statique.
Je veux que mon designer pour être en mesure de construire et de modifier le site sans avoir à me demander d'écrire un nouveau contrôleur ou d'itinéraire à chaque fois qu'ils décident d'ajouter ou de déplacer une page. Donc, si il veut ajouter un "http://example.com/News" de la page, il suffit de créer un "Nouvelles" dossier sous les points de Vue et d'un index.l'étincelle de la page. Puis, plus tard, s'il décide qu'il veut un /News/la page de la Communauté, il peut déposer une communauté.spark fichier dans ce dossier et de le faire travailler.
Je suis capable d'avoir une vue sans une action spécifique en faisant mes contrôleurs de remplacer HandleUnknownAction, mais j'ai encore de créer un contrôleur pour chacun de ces dossiers. Il semble ridicule d'avoir à ajouter un contrôleur de vide et de recompiler à chaque fois qu'ils décident d'ajouter une zone pour le site.
Est-il un moyen de rendre cela plus facile, donc je n'ai qu'à écrire un contrôleur et de recompiler si il y a véritable logique à faire? Une sorte de "maître" contrôleur qui va gérer toutes les demandes pour lesquelles il n'y a pas de contrôleur spécifique défini?
OriginalL'auteur Jake Stevenson | 2010-06-09
Vous devez vous connecter pour publier un commentaire.
Vous aurez à rédiger un itinéraire pour la cartographie actuelle du contrôleur/actions et assurez-vous que la valeur par défaut est l'indice d'une action et l'id est "fourre-tout", et cela va le faire!
OriginalL'auteur Tacoman667
Ce lien peut-être aider,
Si vous créez cshtml en Vue\répertoire Public, Il apparaît sur le site Web du même nom. J'ai aussi ajouté de la page 404.
OriginalL'auteur yasin
Ne pourrait-on pas créer un contrôleur séparé pour toutes les pages statiques et de rediriger tout (autres que les contrôleurs qui fonctionnent) à l'aide de MVC Routes, et inclure le chemin d'accès paramètres? Alors dans ce contrôleur, vous pourriez avoir de la logique d'affichage de la vue correcte basée sur le dossier/chemin de paramètre transmise par les routes.
Bien que je ne sais pas l'étincelle du moteur d'affichage des poignées de choses, a-t-elle à compiler les points de vue? Je ne suis vraiment pas sûr.
OriginalL'auteur Paul
Réflexion sur la réponse de Paul. Je ne suis pas spécial aux moteurs de visualisation, mais voici ce que je fais:
1) Créer un PublicController.cs.
2) Ensuite créer un répertoire Public dans le dossier Vues, et de mettre tous vos points de vue que vous voulez être public. Personnellement, j'ai besoin de cela parce que je n'ai jamais su si le client a voulu créer plus de pages sans avoir à recompiler le code.
3) Puis modifier RouteConfig.cs pour rediriger vers le Public/Index action.
4) Ensuite, il suffit de référence à partir de votre point de vue comme ceci:
Ne sais pas si c'est mieux que d'utiliser un modèle de fabrique, mais il me semble le plus facile à mettre en œuvre et à comprendre.
OriginalL'auteur Arman Bimatov
Je pense que vous pouvez créer votre propre contrôleur usine qui va toujours créer une instance de la même classe de contrôleur.
OriginalL'auteur queen3