代码之家  ›  专栏  ›  技术社区  ›  Arunabh Das

元素“ToolkitScriptManager”不是已知元素

  •  9
  • Arunabh Das  · 技术社区  · 14 年前

    所以我有一个叫做WebParts.aspx的文件-

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebParts.aspx.cs" Inherits="e.WebParts" %>
    <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
      <title></title>
    </head>
    <body>
      <form id="form1" runat="server">
    
    
        <asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
        </asp:ToolkitScriptManager>
    
        <div>
          <asp:TabContainer ID="TabContainer1" runat="server">
    
    
          <asp:TabPanel ID="TabPanel1" runat="server">
          <ContentTemplate>Page One</ContentTemplate>
          </asp:TabPanel>
    
          <asp:TabPanel ID="TabPanel2" runat="server">
          <ContentTemplate>Page Two</ContentTemplate>
          </asp:TabPanel>
    
          <asp:TabPanel ID="TabPanel3" runat="server">
          <ContentTemplate>Page Three</ContentTemplate>
          </asp:TabPanel>
    
          </asp:TabContainer>
      </div>
      </form>
    </body>
    </html>
    

    在一个选项卡容器中创建3个选项卡面板,从而产生所需的结果。

    但是,当我将该页更改为使用MasterPage.master时-

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebParts.aspx.cs" Inherits="eservice.WebParts"  MasterPageFile="~/MasterPage.Master"%>
    
    <asp:Content ID="Content2"  
      ContentPlaceHolderID="ContentPlaceHolder1" 
      runat="server">
    
      <asp:LoginView ID="LoginView1" runat="server">
        <LoggedInTemplate>
           <p id="backtoblog"></p>
           <p> Preferences</p>
            <div>
    
    
        <asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
        </asp:ToolkitScriptManager>
    
        <div>
          <asp:TabContainer ID="TabContainer1" runat="server">
    
    
          <asp:TabPanel ID="TabPanel1" runat="server">
          <ContentTemplate>Page One</ContentTemplate>
          </asp:TabPanel>
    
          <asp:TabPanel ID="TabPanel2" runat="server">
          <ContentTemplate>Page Two</ContentTemplate>
          </asp:TabPanel>
    
          <asp:TabPanel ID="TabPanel3" runat="server">
          <ContentTemplate>Page Three</ContentTemplate>
          </asp:TabPanel>
    
          </asp:TabContainer>
      </div>
       </div>
      </LoggedInTemplate>
        <AnonymousTemplate>
          You are not logged in.
          <br />
          Please login to access eservice
        </AnonymousTemplate>
      </asp:LoginView>
    
      </asp:Content>
    

    VS2008给了我以下警告:

    已知元素。如果 中存在编译错误 网站或Web.config文件 失踪。

    在以下行:

    <asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
    
    2 回复  |  直到 14 年前
        1
  •  25
  •   Domenic    14 年前

    第二个文件不包含行

    <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
    

    你的第一份档案里有。就因为母版页知道 asp: 前缀和与之相关联的程序集/命名空间并不意味着子页可以。

    更好的方法是在web.config中注册assembly/namespace/tag前缀,如下所示:

    <configuration>
        <!-- ... -->
        <system.web>
            <!-- ... -->
            <pages>
                <controls>
                    <add tagPrefix="asp"
                         namespace="AjaxControlToolkit"
                         assembly="AjaxControlToolkit" />
                </controls>
            </pages>
        </system.web>
    </configuration>
    
        2
  •  2
  •   Matthew Weir    7 年前

    文件丢失。

    以防有人碰到这个。对我来说,解决办法是 属性指向4.5.2框架。我选择了一个旧的框架,然后再次选择了4.5.2。这就和其他几十个错误一起消除了上述错误。