在web.config中添加后无法访问用户控件

时间:2011-09-04 17:18:47

标签: asp.net controls

在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>

1 个答案:

答案 0 :(得分:1)

您正尝试将App_Code用于不支持的内容。

来自MSDN - Shared Code Folders in ASP.NET Web Projects

  

App_Code文件夹中不允许使用用户控件(ascx文件)。这包括使用代码隐藏模型的单文件用户控件和用户控件。将用户控件放在App_Code目录中会导致用户控件的代码被编译出所需的序列,因此不允许。 (无论如何,用户控件不需要位于App_Code文件夹中;它们已经可用于应用程序中的任何位置。)

正如摘录所说,您不需要在App_Code中添加控件 - 它们已经可用于页面,只要它们属于项目。