Meilleure solution Asp.net MVC - utiliser le sélecteur de méthode d'action
Pourquoi ne pas simplifier les méthodes d'action du contrôleur en supprimant les branches de code inutiles et avoir ce type de code comme on le voit ici :
public ActionResult Index()
{
// do something when there's no id
}
[RequiresRouteValues("id")]
public ActionResult Index(int id)
{
// do something when id is present
}
C'est bien sûr possible, à condition de fournir le code très simple de RequiresRouteValuesAttribute
sélecteur de méthode d'action. Vous trouverez le code dans cet article de blog qui fait exactement cela.
À mon avis, il s'agit de la meilleure solution possible à ce problème, car :
- Il simplifie le code en supprimant les branches inutiles
- Facilite la maintenance du code (en raison d'une moindre complexité)
- Etend le framework Asp.net MVC comme il le peut et le doit
- Conserve les types de paramètres tels qu'ils devraient être sans qu'il soit nécessaire de les rendre nullables.
- etc.
Quoi qu'il en soit. Tous les détails de cette technique sont expliqués en détail dans l'article lié.