我正在尝试将社交网络按钮添加到我的网站,并构建了一个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'(你错过了吗? using指令或程序集引用?)
我必须在视图中添加一些东西才能让@html调用我的socialLinkButtons吗? 或者有什么我需要添加到我的班级来允许这个吗?
我尝试将我的课程放在contoller文件夹和models文件夹中,并且只是在整个项目中。这个辅助班应该留在哪里?
要查看课程,请点击上面的链接。
编辑:
按照下面的答案,SocialLinkButtons文本不再加下划线,但是当我运行我的代码时,我收到以下错误。
'System.Web.Mvc.HtmlHelper'没有名为的适用方法 'SocialLinkButtons'但似乎有一个扩展方法 名称。无法动态分派扩展方法。考虑 强制转换动态参数或调用扩展方法 扩展方法语法。
答案 0 :(得分:3)
您应该将链接中的代码放在任何名称空间中:
namespace Helpers {
public static class SocialNetworkingHelper {
...
}
}
并在视图中添加using指令:
@using Helpers
答案 1 :(得分:1)
您可能在视图中看不到扩展方法SocialLinkButtons
。
您应该在视图中添加@using MyNamespace
指令,其中MyNamespace
是扩展方法SocialLinkButtons
的实际命名空间,或者您可以通过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>