在web.config中添加:
<pages>
<controls>
<add tagPrefix="dassier" src="~/App_Code/MapGrid.ascx" tagName="Map" />
</controls>
</pages>
然后我尝试从.aspx页面调用它,它不起作用:
<dassier:Map ID="map1" runat="server" />
任何人都知道为什么会这样做?
<dassier:Map ID="map1" runat="server" />
</asp:Content>
整页代码:
<%@ Page Title="" Language="C#" MasterPageFile="Site.master" AutoEventWireup="true"
CodeFile="Map.aspx.cs" Inherits="Home" %>
<asp:Content ID="Content1" ContentPlaceHolderID="Content" runat="Server">
<dassier:Map ID="map1" runat="server" />
</asp:Content>
答案 0 :(得分:1)
您正尝试将App_Code
用于不支持的内容。
来自MSDN - Shared Code Folders in ASP.NET Web Projects:
App_Code文件夹中不允许使用用户控件(ascx文件)。这包括使用代码隐藏模型的单文件用户控件和用户控件。将用户控件放在App_Code目录中会导致用户控件的代码被编译出所需的序列,因此不允许。 (无论如何,用户控件不需要位于App_Code文件夹中;它们已经可用于应用程序中的任何位置。)
正如摘录所说,您不需要在App_Code
中添加控件 - 它们已经可用于页面,只要它们属于项目。