2009-03-09 13 views
1

Je cherche un moyen de créer un assistant d'application qui vous permet de définir des méthodes que vous pouvez appeler dans toutes les vues des contrôleurs. Dans Rails vous obtenez cela gratuitement, mais comment puis-je accomplir cela dans ASP.NET MVC avec C#?Application helper dans ASP.NET MVC

Répondre

3

La manière habituelle est en écrivant des méthodes d'extension à HtmlHelper - par exemple:

public static string Script(this HtmlHelper html, string path) 
{ 
    var filePath = VirtualPathUtility.ToAbsolute(path); 
    return "<script type=\"text/javascript\" src=\"" + filePath 
     + "\"></script>"; 
} 

maintenant dans la vue, vous pouvez utiliser Html.Script("foo"); etc (puisque l'affichage standard comporte un élément HtmlHelper appelé Html). Vous pouvez également écrire des méthodes dans une vue de base, mais l'approche de la méthode d'extension semble être la plus courante.

0

Je suggère d'ajouter une méthode d'extension à la classe de contrôleur de base.

public static class ControllerExtensions 
{ 
    public static string Summin(this Controller c) 
    { 
     return string.Empty; 
    } 
} 

Vous pouvez accéder à la fonction d'aide dans votre contrôleur:

public class MyController : Controller 
    { 
     public ActionResult Index() 
     { 
      this.Summin(); 
      return View(); 
     } 
    } 
+0

La façon dont je l'ai interprété, il a été voulu de la vue, pas le contrôleur ... pas un grand changement, cependant. –

Questions connexes