7
votes

ASP.NET Routage MVC avec un contrôleur nommé "PropriétésController"

Je suis un problème délicat (supporter avec moi comme je suis nouveau à MVC) avec essayer d'utiliser un contrôleur (et un itinéraire par la suite) avec le nom PropriétésController.

Je crois que c'est parce qu'il y a un Annuaire (que je ne peux pas vraiment supprimer) appelé "Propriétés" dans ma solution. Y a-t-il un moyen autour de cela?

La configuration de la route n'est qu'un seul itinéraire: xxx

et l'erreur que je reçois dans IIS7 lors de la demande " http: // localhost / aptitument2 / propriétés / "est:

 text alt

Il y a sûrement un chemin autour de cela que je ne trouve tout simplement pas? Bravo.


3 commentaires

Essayez-vous de naviguer directement à cette vue ou suivez-vous la page par défaut.aspx d'abord (par exemple avec une F5 ou CTRL + F5)? Juste curieux Si l'enregistrement de l'itinéraire est contourné, ce qui se produit, vous avez ce point de vue défini comme page de démarrage au lieu de défaut.aspx.


vient de brûler 2 heures d'essayer de déboguer cela, de se souvenir de son si la prochaine fois la prochaine fois


Ce qui est encore plus gâché est l'URL `Properties / Index 'fonctionne.


4 Réponses :


2
votes

Exercer un test rapide, j'ai le même comportement. Est-ce une option viable d'utiliser autre chose que des propriétés?


5 commentaires

Je préférerais ne pas être du tout possible, après que toute l'idée de MVC est que vous disposez d'un contrôle complet et que votre système de nommage d'URL doit être aussi propre que possible!


Eh bien, en quelque sorte. C'est l'idée de l'acheminement, pas nécessairement seulement du MVC, mais peu importe, MVC relie certaines conventions et qui inclut non pas d'utilisation de mots réservés ni de noms d'autres ressources. Je suggérerais de regarder dans la définition de cette route (je vais ajouter une modification avec une suggestion) ou un nom différent de votre contrôleur.


J'ai essayé de verrouiller l'itinéraire un peu plus loin et d'obtenir le même résultat. Vous serez peut-être sol sur cela, mais je serai curieux de voir s'il y a un moyen de le contourner.


On dirait que tu as raison - oh bien, devra récupérer mon thésaurus!


FWIW, nous avons un contrôleur appelé PropertyController qui fonctionne simplement bien dans l'un de nos projets. Mais nous avons une convention d'utilisation de noms singuliers pour les contrôleurs (par opposition au pluriel tels que «propriétés»).



0
votes

Je ne sais pas si c'est une option pour vous, mais vous pouvez essayer de désactiver le routage vers des fichiers existants. xxx


0 commentaires

5
votes

Puisque quelqu'un d'autre a le même problème, je suppose que vous courez dans un mot-clé réservé ici (j'imagine que les classesContrôleurs sont également sortis).

Ce n'est pas la première fois que cela s'est produit soit - creuser plus profondément dans les internes de l'environnement, Vous ne pouvez pas rejoindre les mots-clés réservés de Windows .


0 commentaires

4
votes

J'ai un PropriétésController Configuration sur une application MVC 3 configurée pour utiliser IIS Express. Je n'obtiens pas exactement l'erreur que vous faites, mais c'est similaire (404.20 Pas de document par défaut) et je suis sûr que c'est pour la même raison.

Cela ne cause pas du tout un problème dans notre environnement de production Puisque nous publions une construction compilée de l'application, puis il n'a pas de dossier de propriétés.

Pour contourner le problème tout en développant localement, j'ai tout mon contenu statique (scripts / CSS / etc. • com / propriétés / sans erreur.


0 commentaires