web-dev-qa-db-ja.com

カスタムHTMLヘルパーでHtml.ActionLinkを呼び出す

カスタムHTMLヘルパーを設計しており、Html.ActionLinkを実行して動的なURL生成を提供したいと思います。

    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ヘルパーメソッドを使用できるかどうかを知りたいと思います。

ありがとう。

30
Sylvain

helperはもうお持ちではありませんか?

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

using System.Web.Mvc.Html名前空間を含めることを忘れないでください。

はい、必要な名前空間が含まれている限り、既存の拡張メソッドを使用できます。

55
Çağdaş Tekin

参考までに、MVC 3の場合、ここでActionLinkを見つけました。

System.Web.Mvc.Html.LinkExtensions.ActionLink(text, action, controller).ToHtmlString();
4
LA Guy 88