2013-07-25 3 views
0

Я пытаюсь добавить кнопки социальных сетей на свой сайт и создать класс socialNetworkingHelper.Бритва, чтобы поговорить с функцией класса?

Я хотел бы знать, что мне нужно сделать, чтобы получить представление, чтобы увидеть класс-помощник.

Я следил за следующей ссылкой, чтобы добраться туда, где я сейчас.

http://www.advancesharp.com/Blog/1033/add-facebook-twitter-and-google-plus-in-c-mvc-application

Я использую MVC 4 и поместил этот DIV в моих страницах макета в моей сноске.

<div> 
    @Html.SocialLinkButtons(Model.Title, Request.Url.ToString()) 
</div> 

Текст SocialLinkButtons подчеркивается красным цветом со следующим сообщением об ошибке.

«System.Web.Mvc.HtmlHelper» не содержит определение для «» SocialLinkButtons и не метод расширения «» SocialLinkButtons принимающий первый аргумент типа «System.Web.Mvc.HtmlHelper» может можно найти (вы пропали без вести с помощью директивы или ссылка на сборку?)

есть Somthing я должен добавить к моему мнению, чтобы позволить @html называть мои socialLinkButtons? Или есть что-то, что мне нужно добавить в мой класс, чтобы это разрешить?

Я попытался разместить свой класс в папке contoller и в папке с образцами и просто во всем проекте. Где должен храниться этот вспомогательный класс?

Чтобы посмотреть класс, перейдите по ссылке, расположенной выше. не

Edit:


После ответов ниже текст SocialLinkButtons больше не подчеркнуты, но когда я запускаю мой код я получаю следующее сообщение об ошибке.

«System.Web.Mvc.HtmlHelper» не имеет применимый метод, названный «SocialLinkButtons», но, как представляется, метод расширения по этой именем. Методы расширения не могут динамически отправляться. Рассмотрим , используя динамические аргументы или вызывающие метод расширения без синтаксиса метода расширения.

+0

ш hat 'namespace' вы поместили этот код? все, что вам нужно сделать, и предположим, что вы добавите это в папку «Помощники», в первой строке или в представлении напишите: '@using MyNamespace.Helpers' – balexandre

+0

@balexandre вот мое пространство имен: пространство имен OBASA.Controllers { public static class SocialNetworkingHelper { – Pomster

+0

Вы помещаете помощника в пространство имен Controllers? Это не правильно! создайте папку в своем проекте и назовите ее «Помощники», затем создайте файл с именем «ExtensionMethods.cs» и добавьте этот код внутри, только после этого, добавьте в свой вид в первой строке: '@using OBASA.Helpers.ExtensionMethods' - компилировать и запускать для тестирования – balexandre

ответ

3

Вы Шоуд поставить код из ссылки в любом пространстве имен:

namespace Helpers { 
    public static class SocialNetworkingHelper { 
    ... 
    } 
} 

и добавить с помощью директивы на ваш взгляд:

@using Helpers 
+0

Я переименовал свое пространство имен в SoicalNetworking, поскольку он был OBASA.Controllers, а затем добавил @using SocialNetworking, подчеркнутый красный текст ушел, но я все еще остался с ошибкой, см. Редактирование. – Pomster

+0

Вам следует добавить @using в поле зрения, где будет использоваться пространство имен, и не забудьте перестроить решение. – YD1m

+0

Кстати, если вам просто нужно добавить социальные виджеты на свои страницы, вы можете использовать настраиваемый виджет 'AddThis.com' или другую аналогичную услугу без добавления каких-либо классов для проекта. – YD1m

1

Возможно, вы используете способ расширения SocialLinkButtons не отображается на вид. Вы должны добавить @using MyNamespace директивы в окне, где MyNamespace актуально пространство имен вашего метода расширения SocialLinkButtons или Youcan достичь того же через web.config, добавив это пространство имен для

<system.web.webPages.razor> 
    <pages pageBaseType="System.Web.Mvc.WebViewPage"> 
     <namespaces> 
      <add namespace="System.Web.Mvc" /> 
      <add namespace="System.Web.Mvc.Ajax" /> 
      <add namespace="System.Web.Mvc.Html" /> 
      <add namespace="System.Web.Routing" /> 
      <add namespace="System.Collections" /> 
      <add namespace="MyNamespace" /> 
     </namespaces> 
    </pages> 
</system.web.webPages.razor> 
+0

Итак, я переименовал пространство имен в своих вызовах socialNetworking, а затем добавил пространство имен, которое вы показывали, но не имело эффекта. – Pomster

+0

Есть еще один момент, который вы должны проверить. Проверьте, что вы ссылаетесь на право 'HtmlHelper' в' public static MvcHtmlString SocialLinkButtons (это HtmlHelper htmlHelper, String title, String url) '. Вы должны использовать версию System.Web.Mvc не System.Web.WebPages. –

Смежные вопросы