2010-03-04 31 views
29

Tôi đang thiết kế trình trợ giúp HTML tùy chỉnh và tôi muốn thực thi Html.ActionLink để cung cấp tạo URL động.Gọi Html.ActionLink trong trình trợ giúp HTML tùy chỉnh

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


    } 
} 

Thật không may Html.ActionLink không được công nhận trong ngữ cảnh này bất kể không gian tên tôi đã cố gắng khai báo.

Là một câu hỏi chung, tôi muốn biết liệu có thể sử dụng bất kỳ phương thức trợ giúp Html chuẩn/tùy chỉnh hiện có nào khi thiết kế trình trợ giúp tùy chỉnh mới hay không.

Cảm ơn.

Trả lời

54

Bạn chưa có helper chưa?

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

Đừng quên bao gồm using System.Web.Mvc.Html không gian tên.

Và có, bạn có thể sử dụng các phương pháp mở rộng hiện tại miễn là bạn đã bao gồm các không gian tên cần thiết.

+0

Cảm ơn. Nó hoạt động! Trân trọng. – Sylvain

+0

@Sylvain, Bạn được chào đón :) –

4

FYI, cho MVC 3, tôi thấy ActionLink đây:

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

Tham số thứ nhất ở trên phải bao gồm tham chiếu đến htmlhelper xem bên dưới –

+0

công khai tĩnh MvcHtmlString ActionLinkCustom (System.Web.Mvc.HtmlHelper html này, chuỗi menutext, chuỗi action, string controller) .... ... liên kết chuỗi = System.Web.Mvc.Html.LinkExtensions.ActionLink (html, menutext, action, controller) .ToHtmlString(); –

Các vấn đề liên quan