元素'ToolkitScriptManager'不是已知元素

时间:2010-07-10 20:30:22

标签: asp.net

所以我有一个名为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给了我以下警告:

  

元素'ToolkitScriptManager'不是   一个已知的元素。如果这可能发生   有一个编译错误   网站,或web.config文件是   丢失。

在以下一行:

<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">

2 个答案:

答案 0 :(得分:23)

您的第二个文件不包含该行

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
你在第一个文件中的

。仅仅因为母版页知道asp:前缀以及与之关联的程序集/命名空间,并不意味着子页面会这样做。

更好的方法是在web.config中注册程序集/名称空间/标记前缀,如下所示:

<configuration>
    <!-- ... -->
    <system.web>
        <!-- ... -->
        <pages>
            <controls>
                <add tagPrefix="asp"
                     namespace="AjaxControlToolkit"
                     assembly="AjaxControlToolkit" />
            </controls>
        </pages>
    </system.web>
</configuration>

答案 1 :(得分:2)

  

元素&#39; ToolkitScriptManager&#39;不是一个已知的元素。这可能发生   如果网站或web.config中存在编译错误   文件丢失。

以防有人碰到这个。对我来说,修复是导入的项目属性指向4.5.2框架。我选择了一个较旧的框架,然后再次选择4.5.2。这与其他几十个错误一起摆脱了上述错误。