2012-04-05 141 views
0

我的.ascx進入了文件夾/ cms/context /,它被稱爲Test.ascx(在.NET 4.0上,WebForms)。爲什麼我不能在.ascx中添加這個「自定義控件」?

當我嘗試添加:

<%@ Register TagPrefix="iz" Namespace="IZ.WebFileManager" Assembly="IZ.WebFileManager" %> 

<div> 
    <iz:FileManager ID="FileManager1" runat="server" Height="400" Width="600"> 
     <RootDirectories> 
      <iz:RootDirectory DirectoryPath="~/images/" Text="My Documents" /> 
     </RootDirectories> 
    </iz:FileManager>  
</div> 

我得到:

System.NullReferenceException。在執行當前Web請求期間生成未處理的異常。關於異常的來源和位置的信息可以使用下面的異常堆棧跟蹤來標識。

爲什麼?我該如何解決它?謝謝

P.S.如果我把母版頁它的工作原理,以及相同的代碼...

堆棧跟蹤:

[NullReferenceException異常:未設置爲一個對象的實例對象引用] IZ.WebFileManager.FileView .OnPreRender(EventArgs e)+167 System.Web.UI.Control.PreRenderRecursiveInternal()+112 System.Web.UI.Control.PreRenderRecursiveInternal()+221 System.Web.UI.Control.PreRenderRecursiveInternal()+221 System.Web.UI.Control.PreRenderRecursiveInternal()+221 System.Web.UI.Control.PreRenderRecursiveInternal()+221 System.Web.UI.Page.ProcessRequestMain(布爾includeStagesBeforeAsyncPoint,布爾includeStagesAfterAsyncPoint)4200

Here是鏈接在那裏你可以得到的插件。我只是將該DLL放入Bin文件夾中,並將該代碼寫入我的Web用戶控件中。在母版頁始終使用,但在一個世維會我有麻煩了......

+0

您有一個堆棧跟蹤? – 2012-04-05 18:54:21

+0

你可以在我的問題上找到它:) – markzzz 2012-04-05 18:55:13

+0

感謝您的補充。 「對象引用未設置爲對象的實例」是需要它的人的翻譯 – 2012-04-05 19:03:28

回答

2

如果只指定命名空間和裝配你只會獲取控件的ascx.cs部分而不是代碼前臺文件(.ascx) 由於您的代碼隱藏文件(.ascx.cs)依賴於您的代碼前臺文件(.ascx)以實際實例化所有你已經聲明的東西,你需要在註冊指令中包含Src

<%@ Register Src="~/cms/context/Test.ascx" TagPrefix="iz" TagName="Test" %> 

如果您創建沒有代碼前置文件(以前稱爲「自定義控件」)的控件,只能指定命名空間和程序集,但是如果您希望獲得代碼前置文件的便利性( 「用戶控制」)你需要指定源。

asp.net框架內的所有內置控件都是作爲自定義控件創建的,這意味着微軟很難寫出它們(它們不能使用ascx文件),但是我們更容易使用它們( web.config中的單個寄存器行允許所有頁面)

+0

@markzzz,是不是這個答案正是我在下面發佈? – Jakub 2012-04-11 12:58:51

+0

@Jakub這是真的,但OP顯然誤解了你的答案,因爲他然後繼續說:「......它的工作原理......我有其他代碼運行......」我只是想我會提供更多的上下文,我不是故意在你的遊行上下雨 – AndreasKnudsen 2012-04-12 05:15:12

1

我敢肯定你缺少源參考:

<%@ Register Src="~/cms/context/Test.ascx" TagPrefix="iz" TagName="Test" %> 
+0

你的意思是當我在.aspx中導入ascx時?不,它的工作原理以及...我有其他代碼運行... – markzzz 2012-04-05 18:58:43

相關問題