2010-03-04 68 views
29

我正在设计自定义HTML帮助程序,我想执行Html.ActionLink以提供动态URL生成。在自定义HTML帮助程序中调用Html.ActionLink

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


    } 
} 

可惜Html.ActionLink没有在这方面任何的命名空间我曾尝试申报的认可。

作为一个通用的问题,我想知道在设计新的自定义帮助器时是否可以使用任何现有的标准/自定义Html帮助器方法。

谢谢。

回答

54

您是否已经有helper

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

不要忘记包含using System.Web.Mvc.Html命名空间。

是的,只要包含必要的命名空间,就可以使用现有的扩展方法。

+0

谢谢。有用 ! 此致敬礼。 – Sylvain 2010-03-04 13:22:33

+0

@Sylvain,不客气:) – 2010-03-04 13:24:13

4

仅供参考,对于MVC 3,我发现这里的ActionLink:

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

上面的第一个参数必须包含对htmlhelper的引用,见下面 – 2012-05-07 19:15:10

+0

public static MvcHtmlString ActionLinkCustom(this System.Web.Mvc.HtmlHelper html,string menutext,string action,string controller).... ... string link = System.Web.Mvc.Html.LinkExtensions.ActionLink(html,menutext,action,controller).ToHtmlString(); – 2012-05-07 19:18:10

相关问题