Asp.net mvc 3 如何使用Razor创建HtmlHelper扩展?

Asp.net mvc 3 如何使用Razor创建HtmlHelper扩展?,asp.net-mvc-3,razor,Asp.net Mvc 3,Razor,我看到了这个语法: @helper IncludeJS(string url) { <script src="@url" type="text/javascript"></script> } 我得到了这个错误: CS1061: 'System.Web.Mvc.HtmlHelper<dynamic>' does not contain a definition for... CS1061:'System.Web.Mvc.HtmlHelper'不包含对

我看到了这个语法:

@helper IncludeJS(string url)
{
    <script src="@url" type="text/javascript"></script>
}
我得到了这个错误:

CS1061: 'System.Web.Mvc.HtmlHelper<dynamic>' does not contain a definition for...
CS1061:'System.Web.Mvc.HtmlHelper'不包含对。。。

如何创建自定义的HtmlHelper扩展并在MVC3(Razor)上使用它?

帮助程序创建普通的页面方法,而不是扩展方法:

@IncludeJS("")
如果要创建
Html
扩展方法,则需要为
HtmlHelper
类创建一个普通扩展方法(在
.cs
文件中)。
如果这样做,可以使用
TagBuilder



编辑:。

帮助程序创建普通页面方法,而不是扩展方法:

@IncludeJS("")
如果要创建
Html
扩展方法,则需要为
HtmlHelper
类创建一个普通扩展方法(在
.cs
文件中)。
如果这样做,可以使用
TagBuilder



编辑:。

我遇到了同样的错误,因为我遇到了以下问题:

<system.web>
    <pages>
        <namespaces>
            <add namespace="MyNamespace"/>

当我需要这个的时候:

<system.web.webPages.razor>
    <pages>
        <namespaces>
            <add namespace="MyNamespace"/>


换句话说,在/Views中的Web.Config中有多个标记,特别是如果您使用的视图引擎多于Razor。如果希望在cshtml文件中显示HtmlHelper扩展名,则需要确保将此行添加到Razor部分。

我遇到同样的错误,因为我遇到了以下问题:

<system.web>
    <pages>
        <namespaces>
            <add namespace="MyNamespace"/>

当我需要这个的时候:

<system.web.webPages.razor>
    <pages>
        <namespaces>
            <add namespace="MyNamespace"/>


换句话说,在/Views中的Web.Config中有多个标记,特别是如果您使用的视图引擎多于Razor。如果你想让你的HtmlHelper扩展显示在你的cshtml文件中,你需要确保将这一行添加到Razor部分。

删除
Html.IncludeJS
行我在
IncludeJS
->
CS0103中得到这个错误:当前上下文中不存在名称“IncludeJS”
删除
Html.IncludeJS
对于
IncludeJS
->
CS0103,我得到了这一错误:当前上下文中不存在名称“IncludeJS”