2009-12-11 39 views
0

我有一個ASP.NET(C#)應用程序,用VS 2008編寫,使用CodeBehind文件和母版頁。在同一個命名空間中還有其他的類和擴展方法。現在,在一些頁面上,我的類和方法從內聯代碼中未定義,如<%= MyClass.MyMethod()。ExtensionMethod()%>。我可以寫<%= MyNamespace.MyClass.MyMethod()%>,但1.它不必要的更長,然後我不能使用擴展方法。在大多數頁面上,它都可以工作,但在某些情況下卻不行。爲什麼我的類不能從ASP.NET內聯代碼中獲得?

我可以在代碼中盲目地(沒有IntelliSense)類型,但它會編譯好,但是當訪問頁面時,它會拋出一些HttpCompiler異常,告訴我該類/方法未定義。它建議我添加「使用」或參考。但是我該如何在代碼視圖中的.aspx頁面上插入「using [namespace]」?這僅適用於C#代碼,不適用於HTML代碼。而且我絕對不需要參考,因爲它們都在同一個項目中,即使在同一個命名空間中。

有人知道爲什麼這有時不工作嗎?有什麼道理可言,我甚至不知道從哪裏開始查找問題,更不要說解決方案...

回答

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

或者,如果你想讓它你可以使用網站的所有頁面適用於全球.config:

<pages> 
    <namespaces> 
    <add namespace="Namespace.Containing.ExtensionMethod"/> 
    </namespaces> 
</pages> 
+0

謝謝,導入的東西沒有伎倆。但爲什麼它沒有在一些頁面上工作? – ygoe 2009-12-11 09:51:13

相關問題