0

VS 2008で記述されたASP.NET(C#)アプリケーションがあり、CodeBehindファイルとマスターページを使用しています。他のクラスと拡張メソッドもすべて同じ名前空間にあります。現在、一部のページでは、<%= MyClass.MyMethod()。ExtensionMethod()%>のように、クラスとメソッドがインラインコードから定義されていません。<%= MyNamespace.MyClass.MyMethod()%>と書くことはできますが、1。不必要に長くなり、2。拡張メソッドを使用できなくなります。ほとんどのページで機能しますが、機能しないページもあります。

やみくもに(IntelliSenseなしで)コードを入力すると正常にコンパイルされますが、ページにアクセスすると、クラス/メソッドが未定義であることを通知するHttpCompiler例外がスローされます。「使用」または参照を追加することをお勧めします。しかし、コードビューの.aspxページに「using[名前空間]」を挿入するにはどうすればよいですか?これはC#コードでのみ使用でき、HTMLコードでは使用できません。また、同じ名前空間であっても、すべて同じプロジェクトにあるため、参照は絶対に必要ありません。

なぜこれが時々機能しないのか誰かが知っていますか?理由は何ですか、解決策は言うまでもなく、どこから問題を探し始めるのかさえわかりません...

4

1 に答える 1

4
<%@ Import Namespace="Namespace.Containing.ExtensionMethod" %>

または、すべてのページにグローバルに適用する場合は、web.configを使用できます。

<pages>
  <namespaces>
    <add namespace="Namespace.Containing.ExtensionMethod"/>
  </namespaces>
</pages>
于 2009-12-11T09:32:45.280 に答える