Метод расширения HtmlHelper для кнопки «Мне нравится» в Facebook - PullRequest
1 голос
/ 18 апреля 2011

Существует ли метод расширения для HtmlHelper, который помогает генерировать код для кнопки facebook или для объявления тегов открытого графика?

Спасибо

Ответы [ 2 ]

3 голосов
/ 15 мая 2013

У меня был похожий сценарий, когда мне приходилось создавать кнопку «Мне нравится в Facebook» (с использованием только iframe), и мне не требовалась какая-либо другая сборка, это то, что я в итоге делал:

    public static MvcHtmlString FacebookLikeButton(this HtmlHelper htmlHelper, string url, int width = 90, int height = 21, object htmlAttributes = null)
    {
        var tagBuilder = new TagBuilder("iframe");

        var uriBuilder = new UriBuilder("http://www.facebook.com/plugins/like.php");

        var nvc = new NameValueCollection
        {
            {"locale", Thread.CurrentThread.CurrentCulture.ToString().Replace("-", "_")},
            {"href", url},
            {"layout", "button_count"},
            {"show_faces", "true"},
            {"width", width.ToString(CultureInfo.InvariantCulture)},
            {"height", height.ToString(CultureInfo.InvariantCulture)},
            {"action", "like"},
            {"colorscheme", "light"},
            {"font", "arial"}
        };

        uriBuilder.Query = string.Join("&", Array.ConvertAll(nvc.AllKeys, key => string.Format("{0}={1}", HttpUtility.UrlEncode(key), HttpUtility.UrlEncode(nvc[key]))));

        tagBuilder.MergeAttribute("src", uriBuilder.Uri.AbsoluteUri);
        tagBuilder.MergeAttribute("scrolling", "no");
        tagBuilder.MergeAttribute("frameborder", "0");
        tagBuilder.MergeAttribute("style", string.Format("border:none; overflow:hidden; width:{0}px; height:{1}px;", width, height));
        tagBuilder.MergeAttribute("allowTransparency", "true");

        if (htmlAttributes != null)
        {
            tagBuilder.MergeAttributes(new RouteValueDictionary(htmlAttributes));
        }

        var completeHtml = tagBuilder.ToString(TagRenderMode.Normal);

        return new MvcHtmlString(completeHtml);
    }

Использование:

@Html.FacebookLikeButton(Model.AbsoluteUrl)

Поскольку этот пост довольно старый, я думаю, вам удалось достичь того, на что вы надеялись, хотя этот пост был первым попаданием, которое я получил при поискетема.

1 голос
/ 18 апреля 2011

Вы можете попробовать с помощниками в Microsoft.Web.Helpers.dll просто скачать библиотеку с NuGet.

Вот ссылка: http://weblogs.asp.net/imranbaloch/archive/2010/11/07/using-asp-net-web-pages-in-asp-net-mvc.aspx

...