2011-08-16 4 views
1

MVCのビューでは使用できません私の名前空間に追加:クラスIは、.NET 3.5 MVC2のVBアプリでマイ名前空間に追加された次のクラスがいる

Namespace My 

    Public Class Environment 

     Public Shared ReadOnly Property IsProduction As Boolean 
      ...code here... 
     End Property 

    End Class 

End Namespace 

私はアプリ全体でそれを使用しましたが、私それをビューで直接参照することはできません。たとえば、このコードフラグは「My.Environment」と、それは「私」のメンバーではありませんと言う:私の名前空間に私の追加を参照してくださいビューのために行われる必要がある追加のステップがあります

<p> 
    Are you are in production? <%= My.Environment.IsProduction %> 
</p> 

+1

クラス環境は静的クラスではないため、そのメンバーにアクセスするにはインスタンスが必要です。あなたがそれを静的なクラスとして使用しているのと同じように、それはそうではありません。 –

+0

私はSharedプロパティにアクセスしていません。私は「My.Environment.IsProduction Then ...」と呼ぶことができます。コントローラや環境のインスタンスを必要としない他のクラスでは必要です。 – gfrizzle

+0

VB.NETは静的ではなく共有を使用することを忘れていました。 :) –

答えて

1

コードをもう一度見て、Jamieは正しいです。ビューで使用する前にクラスをインスタンス化する必要があります。

<p> 
Are you are in production? <%= model.IsProduction %> 
</p> 
+0

Jamieのコメントを見る - プロパティは共有されているので、インスタンスが必要です。 – gfrizzle

+1

ええ、しかし、ビューでは、すべてにアクセスすることはできません。実際、それはMVCの目的です。ビューではモデルにしかアクセスできません。もちろん、ViewData/ViewBagにアクセスすることはできますが、特定のメソッドにアクセスするには、HtmlHelper拡張機能を使用することができます。 –

+0

あなたはそうです。それを忘れてしまった。徹底的な説明をありがとう。 – gfrizzle

関連する問題