2009-10-19 7 views
7

これはおそらく本当に愚かな質問ですが、私はとにかくそれを尋ねるつもりです...マークアップで拡張機能とユーティリティメソッドを使用するには?

ASP.Netマークアップでどのように拡張機能とユーティリティメソッドを使用できますか?たとえば、(私の)CommonTime.ExtensionsプロジェクトのDateTimeExtensionsクラスに含まれている "ToExampleString()"と呼ばれるDateTime拡張メソッドがあり、ListViewのItemTemplateのマークアップで使用したいと考えています:

私は次のエラーを取得してい

「のSystem.DateTimeは」「ToExampleString」の定義が含まれておらず、型「のSystem.DateTime」の最初の引数を受け入れる「ToExampleString」は拡張メソッドが見つかりませんでした(usingディレクティブまたはアセンブリ参照がありませんか?)

ページには拡張機能が表示されません。同様に

、どのように私は、ユーティリティクラスの私のページのマークアップを認識させるん:

<span><%# ExampleUtility.ProcessDate(Eval("DateStarted") %></span> 

は、どのような手順私はこのようなものを動作させるために取る必要がありますか?私は何か愚かに明白な見落としていると思いますか?私はあなたがweb.configファイル内のすべてのあなたのマークアップのためにそれを行うことができると信じて

おかげ

答えて

7
<%@ Import Namespace="Common.Extensions" %> 

+0

ありがとうございました。私は自分のコードの中に "Common.Extensionsを使う"というステートメントを持っています。それはうまくいくはずですか? –

+0

いいえ、私はあなたもマークアップに配置する必要があると思います。 –

+0

コードビハインドでusingステートメントを使用すると、コードビハインドクラスで拡張メソッドを表示できますが、マークアップファイルにも名前空間をインポートする必要があります。 –

0

名前空間?

あなたはあなたがページの上部に、名前空間をインポートする必要がありASPXマークアップで/ importディレクティブを使用して

2

を追加する必要があります

<%@ Import Namespace="Common.Extensions"%> 
9

あなたがいずれかの一番上に名前空間をインポートする必要があります他のようなページがあなたのweb.configファイルでグローバルに

<%@ Import Namespace="Common.Extensions"%> 

または

を言っている

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

パブリックモジュール(または静的クラス)のメソッドにアクセスするだけであれば、アプリケーションのルート名前空間をインポートするだけです。

+0

余分なweb.config情報をありがとう! –

関連する問題