2009-10-17 45 views
3

今天我正在撞牆磚頭。我正在將一箇舊盒子上開發的網站移植到新的開發環境中。我並沒有複製所有的文件,因爲我沒有一個很好的文件結構,並且在我走時需要刪除一些代碼部分。ASP.NET在頁面上註冊了一個來自外部DLL的控件

最初我創建了一個網站(文件 - >新建 - >網站)。我想要的文件結構是這樣的:

Popular folder structure for build

所以我創建了一個新的空白解決方案,因此SLN的文件是對自己,然後添加項目(各種DLL項目)和我ASP.NET Web應用程序。

這最後一部分似乎給我帶來了一些讓我頭痛的問題。據我瞭解(這可能有點有限),一個網站(如我第一次)與我創建的後期類型不同。例如,App_Code文件夾部分不像以前那樣工作。爲了解決這個問題,我爲webLibrary cs文件創建了一個獨立的DLL並添加了一個對它的引用。

我現在的問題是我如何在頁面上註冊,以便能夠使用它中的控件。比如我有一個從文本框繼承的控制,當它在App_Code文件夾中我可以使用:

<%@ Register TagPrefix="sarg" Namespace="MyNameSpace" %> 

然後使用

<sarg:SARGTextBox id="clienttitletxtbox" runat="server" OnTextChanged="textboxfiltering_TextChanged" AutoPostBack="true"></sarg:SARGTextBox> 

現在是在其自己的DLL和命名空間我不能找出如何讓它工作,我只是不斷收到警告說「無法解析符號'SARGTextBox'」。

這可能很簡單,但我不能再看到樹木。

謝謝

+0

謝謝你們,你們都對,我更喜歡web.config解決方案,因爲我只需要做一次。主要問題竟然是我!震驚恐怖,用戶錯誤!謝謝 – Jon 2009-10-17 22:01:52

回答

3

我想你已經創建了一個WebApplication而不是網站。 WebApplication不支持App_Code。

  1. 添加您的ClassLibrary作爲參考。
  2. 然後在web.config中註冊您的控件。
 
    <pages> 
     <controls> 
      <add tagPrefix="myctl" namespace="Namespace.ClassName" assembly="AsseblyName"/> 
     </controls> 
    </pages> 
  • 重新生成溶液。
  • 打開頁面,並從工具箱中找到你的控制和拖放您的網頁上,
  • 3

    您需要指定控件聲明集:

    <%@ Register TagPrefix="sarg" Namespace="MyNameSpace" Assembly="MyLibrary" %> 
    
    相關問題