2

ActionLink画像を使ってヘルパーの拡張メソッドを作成しようとしています。

これは私の拡張メソッドです:

public static class MyHelpers
    {
        public static string ActionLinkWithImage(this HtmlHelper html, string imgSrc, string actionName)
        {
            var urlHelper = new UrlHelper(html.ViewContext.RequestContext);

            string imgUrl = urlHelper.Content(imgSrc);
            TagBuilder imgTagBuilder = new TagBuilder("img");
            imgTagBuilder.MergeAttribute("src", imgUrl);
            string img = imgTagBuilder.ToString(TagRenderMode.SelfClosing);

            string url = urlHelper.Action(actionName);

            TagBuilder tagBuilder = new TagBuilder("a")
            {
                InnerHtml = img
            };

            tagBuilder.MergeAttribute("href", url);

            return tagBuilder.ToString(TagRenderMode.Normal);
        }
    }

そして、私はそれをこのように使おうとしています:

@Html.ActionLinkWithImage("Images/del.png", "Delete", new { id = item.ItemID});

しかし、私の拡張メソッドには「ルート値」がありません。これを実装するにはどうすればよいですか?

4

2 に答える 2

3

このような:

public static string ActionLinkWithImage(this HtmlHelper html, string imgSrc, string actionName, object routeValues)
    {

    //Your code ...

    string url = urlHelper.Action(actionName, routeValues);

    }
于 2012-11-26T10:54:25.077 に答える
2

メソッドにオブジェクト パラメーターを追加する

, object routeData) 

これを UrlHelper に渡します

new UrlHelper(new RequestContext(html.ViewContext.HttpContext, routeData))
于 2012-11-26T10:56:39.350 に答える