7

Ok。これはおそらく本当にばかげた質問ですが、とにかく尋ねます...

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

<ItemTemplate>
    <span><%# ((DateTime)Eval("DateStarted")).ToExampleString() %></span>
</ItemTemplate>

次のエラーが表示されます。

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

このページには、拡張メソッドが表示されません。

同様に、ページのマークアップにユーティリティ クラスを認識させるにはどうすればよいですか。

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

これを機能させるには、どのような手順を踏む必要がありますか? 私はばかげて明白な何かを見落としていると思いますか?

ありがとう

4

4 に答える 4

11

他の人が言ったように、ページの上部に名前空間をインポートする必要があります

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

または web.config でグローバルに

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

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

于 2009-10-19T16:11:48.330 に答える
8
<%@ Import Namespace="Common.Extensions" %>

web.config のすべてのマークアップに対してそれができると思います。

于 2009-10-19T16:06:12.167 に答える
2

ページの上部で、名前空間をインポートする必要があります。

<%@ Import Namespace="Common.Extensions"%>
于 2009-10-19T16:08:25.013 に答える
0

名前空間?

aspx マークアップに using/import ディレクティブを追加する必要があります

于 2009-10-19T16:07:07.610 に答える