2010-03-04 12 views
29

Ich entwerfe ein benutzerdefiniertes HTML-Hilfsprogramm und möchte Html.ActionLink ausführen, um dynamische URL-Generierung bereitzustellen.Html.ActionLink in einem benutzerdefinierten HTML-Hilfsprogramm aufrufen

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; 
      } 


    } 
} 

Leider Html.ActionLink ist in diesem Zusammenhang nicht erkannt, was auch immer der Namespace ich versucht habe zu erklären.

Als generische Frage würde ich gerne wissen, ob es möglich ist, eine vorhandene standard/benutzerdefinierte HTML-Helper-Methode beim Entwerfen eines neuen benutzerdefinierten Helfers zu verwenden.

Danke.

Antwort

54

Haben Sie nicht die helper schon?

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

Vergessen Sie nicht using System.Web.Mvc.Html Namespace enthalten.

Und ja, Sie könnten die vorhandenen Erweiterungsmethoden verwenden, solange Sie die erforderlichen Namespaces enthalten.

+0

Dank. Es klappt ! Grüße. – Sylvain

+0

@Sylvain, Gern geschehen :) –

4

FYI, für MVC 3, fand ich die Action hier:

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

1. Parameter oben muss einen Verweis auf htmlhelper enthalten siehe unten –

+0

öffentliche statische MvcHtmlString ActionLinkCustom (diese System.Web.Mvc.HtmlHelper html, Zeichenfolge Menutext, String-Aktion, String-Controller) .... ... string link = System.Web.Mvc.Html.LinkExtensions.ActionLink (html, menutext, aktion, controller) .ToHtmlString(); –

Verwandte Themen