Actuellement ma structure d'URL est comme ceci:refactoring ma route pour être plus dynamique
www.example.com/honda/ www.example.com/honda/add www.example.com/honda/29343
J'ai un contrôleur nommé HondaController.
Maintenant, je veux refactoriser cela afin que je puisse soutenir plus de constructeurs automobiles. La base de données possède une table qui stocke tous les fabricants que je veux prendre en charge.
Comment puis-je conserver mon URL comme ci-dessus, mais prend désormais en charge:
www.example.com/ford www.example.com/toyota/add~~V~~3rd etc.
Je peux facilement renommer le HondaController à CarController, et juste passer dans la chaîne 'honda' ou 'toyota' et mon contrôleur va fonctionner (il est codé dur à 'honda' en ce moment).
Est-ce possible? Je ne suis pas sûr de savoir comment rendre une route dynamique en fonction de ce que j'ai dans la base de données.
womp, mais cela ne sera-t-il pas en conflit avec la route par défaut? Routes.MapRoute ( "Default", // Nom de la route "{controller}/{action}/{id}", // URL avec les paramètres nouveau {action = "Index", id = ""}/ /Paramètre par défaut ); – mrblah
Ce n'est pas vraiment en conflit, mais cela aurait préséance. Toujours mapper vos itinéraires les plus spécifiques en premier - donc mappez votre route {controller}/{action}/{id} avant/{manufacturer}/{action} /. Cela donne la route par défaut une chance de correspondre à l'URL en premier. Notez également que vous pouvez toujours supprimer la route par défaut si vous ne l'utilisez pas. – womp
Notez que vous devez supprimer les paramètres par défaut;) – womp