2016-04-28 10 views
1

私はオーチャードを使用して自分のウェブサイトを構築していますが、実際の環境やテスト環境にはさまざまな要素を追加したいと考えています。オーチャード・テーマ・クラスでC#シングルトン・クラスを使用して、プロダクション環境であればそれを取得しようとしました。次に、テーマのcshtmlファイルでシングルトンクラスを使用します。コードをコンパイルすることができます。しかし、実行時に、それは例外をスローする:名前 'テーマ'は現在のコンテキストに存在しません。クラスを追加する前に "テーマ"名前空間を追加する必要があります。そうでなければ、コンパイルをパスしません。オーチャードテーマでC#シングルトンクラスを使用する方法

詳細: シングルトンクラス:EnvironmentDev.csファイルをThemes.csprojファイルに追加しました。静的なGetInstanceメソッドとIsProdプロパティが含まれています。 Themes.csprojファイルで が、それは示しています。テーマのDocument.cshtmlファイルで

<ItemGroup> 
    <Compile Include="EnvironmentDev.cs" /> 
</ItemGroup> 

を、私は次のコードを追加:

@{ 
    if (Themes.EnvironmentDev.GetInstance().IsProd) { 
     // Add production element 
    } 
    else { 
     // Add test site element 
    } 
} 

詳細なエラーメッセージ: 説明:エラーはコンパイル時に発生しましたこの要求を処理するために必要なリソースの数。以下の特定のエラーの詳細を確認し、ソースコードを適切に変更してください。

コンパイラエラーメッセージ:CS0103:

Line 46:  @Display(Model.Head) 
Line 47:  @{ 
Line 48:   if (Themes.EnvironmentDev.GetInstance().IsProd) { 
Line 49:    <script src="https://XXXX.js"></script> //using XXXX instead of real link 
Line 50:   } 

任意の提案をいただければ幸いです:名「テーマは、」現在のコンテキストで

ソースエラーが存在しません。

答えて

0

私は、そうでない場合はあなたのコードが見つかりませんあなたは、次のコマンド

codegen theme MyTheme /CreateProject:true /IncludeInSolution:true 

であなたのテーマのための専用のプロジェクトを作成する必要があると思います。私はリソースファイルで同じ問題を抱えていました。

詳細については、テーマdocsで生成してください。

+1

ありがとう、これは役に立ちます! – JinghuiZhang

関連する問題