J'utilise une méthode similaire à l'article auquel vous avez lié: un filtre d'action qui renvoie un 404 si le modèle de vue est nul. Je l'ai combiné avec un invocateur d'action personnalisé (comme this) afin que je n'ai pas à mettre l'attribut de filtre sur tout.
Depuis que je l'ai mentionné, il existe plusieurs autres types d'actions que vous pouvez faire si vous allez sur la route du filtre d'action. J'ai/eu des filtres qui vont:
- Rediriger automatiquement vers la vue Index après une modification réussie.
- Redirige vers la même page si ModelState n'est pas valide.
- Rediriger vers une page d'accès refusé si une exception de sécurité est levée.
Je pense à refactorisation ces à un registre des congrès afin que je puisse avoir quelque chose comme:
When.ModelIsNull.RedirectTo<SharedController>(c => c.NotFound());
For("Edit").ModelStateIsInvalid.Redisplay();
For("Edit").OnSuccess.RedirectTo("Index");
On<SecurityException>().RedirectTo<SharedController>(c => c.AccessDenied());
Alors si je voulais changer la façon dont un comportement particulier fonctionne je change juste en un seul endroit. Par exemple, au lieu d'aller à Index, je pourrais rediriger vers la vue Affichage.
For("Edit").OnSuccess.RedirectTo("View");
J'espère que cela vous donne quelques idées.
Edit:Here est de savoir comment pourrait accomplir quelque chose de similaire en utilisant FubuMVC (que j'aime voler des idées de)