2011-01-24 77 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部分。