2011-01-24 79 views
1

只见这句法:如何用Razor创建HtmlHelper扩展?

@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(剃刀)?

回答

1

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

@IncludeJS("") 

如果你想创建一个Html扩展方法,你需要创建一个普通扩展方法(在.cs文件)的HtmlHelper类。
如果你这样做,你可以使用TagBuilder类。


编辑The Views\Helpers feature was dropped before RTM

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

当我需要这样的::

+0

删除`Html.IncludeJS`这一行我得到`IncludeJS` - >`CS0103的这个错误:名称'IncludeJS'在当前上下文中不存在` – BrunoLM 2011-01-24 01:28:38

0

,因为我有这个,我得到了同样的错误

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

换句话说,也有在/浏览次数Web.Config中多个标签,特别是如果你使用比Razor更多的视图引擎。如果你想让你的HtmlHelper扩展出现在你的cshtml文件中,你需要确保你将这一行添加到Razor部分。