2013-01-29 29 views
5

私は、ASP.NET MVC 4フレームワークとRazor構文を使用してアプリケーションを開発し始めています。私はどこ(フォルダの場所)私のHTMLヘルパークラスを作成する必要があります知ってほしい。ベストプラクティス。例えばASP.NET MVC 4カスタムHTMLヘルパーフォルダの場所

  • VisualStudioSolution
    • Controlles
    • Htmlの
      • HtmlHelperClass.vb
    • モデル
    • ビュー

答えて

6

thisを使用してください.Razorで "@helper"機能を使用するには、アプリのApp_CodeフォルダにCSHTMLファイルを配置する必要があります。 ASP.NET MVC 3には「Views/Helpers」フォルダはありません。ScottGuのブログ記事は、機能が完全に実装される前に書かれており、そこにある注釈の一部は完全に正確ではありません。

あなたが書いた "@helper"を呼び出すには、その中にヘルパーの名前とファイル名の両方を含める必要があります。

~/App_Code/MyHelper.cshtml 

そして、このコンテンツ:たとえば、あなたはこのヘルパーがあれば

@helper ShowStuff(string stuff) { 
    <p>@stuff</p> 
} 

を次に、あなたがそうのようにそれを呼び出す:

@MyHelper.ShowStuff("some stuff!") 
+0

ヘルパーだけにApp_Codeのファイルで動作しますフォルダ。 –

+0

私は、現在、これらのヘルパーをまったく使用できないため、App_Codeフォルダを許可しなかったホスティングプロバイダに展開する際に問題が発生しました。 http://stackoverflow.com/a/16057766/678338 –

+0

@SeanMillビュー "@ UtilsProject.Helpers"の上部にこれを追加し、ヘルパー "@ Html.MyCustomHelper()"を使用することができます。私のアプリケーションでは、UtilsProjectという名前の新しいプロジェクトをソリューションに追加し、その中に私のカスタムヘルパーがあります。 –

1

あなたは良い構造を持っています。

私はユーティリティフォルダでHtmlフォルダを変更します。 そこにすべてのちょっとしたヘルパーを追加できます。

  • コントローラ
  • モデル
  • ビュー
  • ユーティリティ
  • フレームワーク(これはあなたのアプリケーションのブートストラップのために便利かもしれない)

そして、そこ実際に無修正 "ベストプラクティス" 。明白な場所でクラスを見つけることができるようにしてください。改造しない場合。

関連する問題