我看到了这种语法:
@helper IncludeJS(string url)
{
<script src="@url" type="text/javascript"></script>
}
放在.cshtml
上的Views\Helpers
文件中。但是在使用以下任何一个视图时都无法识别:
Html.IncludeJS("")
IncludeJS("")
我收到了这个错误:
CS1061: 'System.Web.Mvc.HtmlHelper<dynamic>' does not contain a definition for...
如何创建自定义HtmlHelper扩展并在MVC3(Razor)上使用它?
答案 0 :(得分:1)
助手创建普通页面方法,而不是扩展方法:
@IncludeJS("")
如果您想创建Html
扩展方法,则需要为.cs
类创建常规扩展方法(在HtmlHelper
文件中)。
如果您这样做,则可以使用TagBuilder
类。
答案 1 :(得分:0)
我得到同样的错误,因为我有这个:
<system.web>
<pages>
<namespaces>
<add namespace="MyNamespace"/>
当我需要时:
<system.web.webPages.razor>
<pages>
<namespaces>
<add namespace="MyNamespace"/>
换句话说,/ Views中的Web.Config中有多个标签,特别是如果你使用的视图引擎比Razor多。如果您希望HtmlHelper扩展显示在cshtml文件中,则需要确保将此行添加到Razor部分。