2010-04-03 5 views
2

Dans mon application, j'ai un paramètre de chaîne appelée « boutique » qui est nécessaire dans tous les contrôleurs, mais il doit être transformé en utilisant le code comme ceci:ASP.NET MVC traitement des paramètres du contrôleur

 shop = shop.Replace("-", " ").ToLower(); 

Comment puis-je le faire globalement pour tous les contrôleurs sans répéter cette ligne encore et encore? Merci, Leo

Répondre

3

Ecrire un custom action filter, et remplacent OnActionExecuting() appliquer le filtre à tous vos contrôleurs. (Ou tout simplement remplaçant OnActionExecuting() dans votre contrôleur de base, si vous avez un contrôleur de base du tout.) La méthode d'action ressemblerait à quelque chose comme ceci:

protected override void OnActionExecuting(ActionExecutingContext filterContext) 
{ 
    var parameters = filterContext.ActionParameters; 
    object shop; 
    if (parameters.TryGetValue("shop", out shop)) 
    { 
     parameters["shop"] = ((string)shop).Replace("-", " ").ToLower(); 
    } 
} 
+0

Merci pour votre réponse rapide Buu, il a très bien fonctionné! Cette solution a supprimé 31 lignes de code redondantes dans mon application! Leo –

+0

@Leonardo: mon plaisir, je suis content que cela a fonctionné pour vous! –

Questions connexes