[英]Register assembly in ASP.NET (VS 2005) and web.config
我正在將新版本的程序集應用於Web項目,並且發現我將不得不替換每個Web控件頂部的500個Register Assembly標簽實例。 我考慮過在web.config中注冊它,但是當我嘗試這樣做並從控件中刪除“注冊”標簽時,我收到“無法識別的標簽前綴”錯誤,並且丟失了該標簽的智能感知。 我沒有GAC的程序集,但我不認為那會是一個問題。 我在這里想念什么? 在此先感謝您的幫助。
您確定要正確構建配置文件嗎? Rick Strahl就此問題撰寫了一篇出色的文章:
http://www.west-wind.com/WebLog/posts/753705.aspx
通常,當您將自定義控件嵌入頁面時,您需要添加@Register標記,如下所示:
<%@ Page language="c#" Inherits="Westwind.WebToolkit.MessageDisplay"
CodeBehind="MessageDisplay.aspx.cs"
enableViewState="false" AutoEventWireup="True"
MasterPageFile="~/WestWindWebToolkit.master"
%>
<%@ Register Assembly="Westwind.Web" Namespace="Westwind.Web.Controls" TagPrefix="ww" %>
為了使控件能夠在頁面中工作並與Intellisense一起顯示。 如果使用視覺設計器放置控件,您可能不會注意到此要求,因為設計器會自動為您添加程序集和名稱空間依賴項到頁面中。 但是,如果您像我通常所做的那樣僅在標記中工作,通常必須先在頁面頂部注冊控件,然后再回到將控件實際嵌入頁面中以獲取Intellisense的方法,這通常很煩人。
一種更簡單的應用程序全局方法是直接在web.config中聲明名稱空間和控件標簽,並將其全局應用:
<system.web> <pages>
<namespaces>
<add namespace="System.IO" />
<add namespace="System.Text" />
<add namespace="Westwind.Utilities" />
<add namespace="Westwind.Web.Controls" />
</namespaces>
<controls>
<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add tagPrefix="ww" namespace="Westwind.Web.Controls" assembly="Westwind.Web" />
</controls>
</pages> <compilation debug="true">
<assemblies>
<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</assemblies>
</compilation>
</system.web>
控件部分有效地提供了@Register標簽在頁面中的等效性,並且一旦您定義了標簽前綴,在頁面中就不再需要@Register標簽了。
希望能有所幫助,
吉姆
我必須安裝VS 2005 Service Pack 1並重新啟動Visual Studio。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.