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>

SocialLinkBut​​tons 文本带有红色下划线,并带有以下错误消息。

“System.Web.Mvc.HtmlHelper”不包含“SocialLinkBut​​tons”的定义,并且找不到接受“System.Web.Mvc.HtmlHelper”类型的第一个参数的扩展方法“SocialLinkBut​​tons”(您是否缺少 using 指令还是汇编参考?)

有什么我必须添加到我的视图中以允许@html 调用我的 socialLinkBut​​tons 吗?或者有什么我需要添加到我的班级来允许这个吗?

我已经尝试将我的课程放在 contoller 文件夹和模型文件夹中,并且在整个项目中都很简单。这个助手类应该保存在哪里?

要查看课程,请点击上面的链接。

编辑:


按照下面的答案 SocialLinkBut​​tons 文本不再带下划线,但是当我运行我的代码时,我收到以下错误。

“System.Web.Mvc.HtmlHelper”没有名为“SocialLinkBut​​tons”的适用方法,但似乎具有该名称的扩展方法。扩展方法不能动态调度。考虑强制转换动态参数或在没有扩展方法语法的情况下调用扩展方法。

4

2 回答 2

3

您应该将链接中的代码放在任何命名空间中:

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

并在您的视图中添加 using 指令:

@using Helpers
于 2013-07-25T10:47:54.573 回答
1

可能您的扩展方法SocialLinkButtons在视图中不可见。您应该在扩展方法的实际命名空间@using MyNamespace所在的视图中添加指令,或者您可以通过将此命名空间添加到MyNamespaceSocialLinkButtonsweb.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>
于 2013-07-25T10:46:29.633 回答