2011-01-24 11 views
1

私はこの構文を見た:RazorでHtmlHelper拡張機能を作成するには?

Views\Helpers.cshtmlファイルに置き
@helper IncludeJS(string url) 
{ 
    <script src="@url" type="text/javascript"></script> 
} 

。しかし、その後のいずれか使用しているときには、ビュー上で認識されない:

Html.IncludeJS("") 
IncludeJS("") 

をそして、私はこのエラーを取得する:

CS1061: 'System.Web.Mvc.HtmlHelper<dynamic>' does not contain a definition for... 

にはどうすればカスタムHtmlHelperの拡張機能を作成し、MVC3(レイザー)にそれを使用することができますか?

答えて

1

ヘルパーは、通常のページの方法ではなく、拡張メソッドを作成します。

@IncludeJS("") 

あなたはHtml拡張メソッドを作成したい場合は、あなたがHtmlHelperのために(.csファイルに)通常の拡張メソッドを作成する必要がありますクラス。
これを行うと、TagBuilderクラスを使用できます。


EDITThe Views\Helpers feature was dropped before RTM

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

私はこの必要なとき::私はこれを持っていたので

+0

'Html.IncludeJS'行の削除' IncludeJS' - > 'CS0103:このエラーは、現在のコンテキストに' IncludeJS 'が存在しません – BrunoLM

0

が、私はこれと同じエラーを得たつまり

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

を、中/ビューのWeb.Configで複数のタグがあり、 Razorよりも多くのビューエンジンを使用している場合は特にそうです。 HtmlHelper拡張機能をcshtmlファイルに表示するには、この行をRazorセクションに追加する必要があります。

関連する問題