2010-03-04 3 views
29

Je suis en train de concevoir une aide HTML personnalisée et je voudrais exécuter Html.ActionLink pour fournir une génération d'URL dynamique.Appel de Html.ActionLink dans une aide HTML personnalisée

namespace MagieMVC.Helpers 
    { 
     public static class HtmlHelperExtension 
     { 
      public static string LinkTable(this HtmlHelper helper, List<Method> items) 
      { 
       string result = String.Empty; 

       foreach (Method m in items) 
       { 
        result += String.Format(
         "<label class=\"label2\">{0}</label>" + 
         System.Web.Mvc.Html.ActionLink(...) + 
         "<br />", 
         m.Category.Name,m.ID, m.Name); 
       } 

       return result; 
      } 


    } 
} 

Malheureusement, Html.ActionLink n'est pas reconnu dans ce contexte quel que soit l'espace de noms que j'ai essayé de déclarer. En tant que question générique, j'aimerais savoir s'il est possible d'utiliser une méthode d'assistance HTML standard/personnalisée existante lors de la conception d'une nouvelle aide personnalisée.

Merci.

Répondre

54

Vous n'avez pas déjà le helper?

helper.ActionLink("text", "actionName"); 

Ne pas oublier d'inclure l'espace de noms using System.Web.Mvc.Html.

Et oui, vous pouvez utiliser les méthodes d'extension existantes tant que vous avez inclus les espaces de noms nécessaires.

+0

Merci. Ça marche ! Cordialement. – Sylvain

+0

@Sylvain, vous êtes les bienvenus :) –

4

Pour votre information, pour MVC 3, j'ai trouvé le ActionLink ici:

System.Web.Mvc.Html.LinkExtensions.ActionLink(text, action, controller).ToHtmlString(); 
+0

1er paramètre ci-dessus doit inclure une référence à htmlhelper voir ci-dessous –

+0

public static MvcHtmlString ActionLinkCustom (ce System.Web.Mvc.HtmlHelper html, chaîne menutext, action de chaîne, contrôleur de chaîne) .... ... chaîne lien = System.Web.Mvc.Html.LinkExtensions.ActionLink (html, menutext, action, contrôleur) .ToHtmlString(); –

Questions connexes