2010-07-10 95 views
8

所以我有一個名爲WebParts.aspx文件,它看起來像這樣 -元素「ToolkitScriptManager」不是一個已知的元素

<%@ 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"> 

回答

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> 
+0

非常感謝Domenic! – Das 2010-07-10 20:52:34

0

元素「ToolkitScriptManager」不是一個已知的元素。如果網站中存在編譯錯誤,或者缺少web.config文件 ,則可能發生此問題 。

以防萬一有人跑過這個。對我來說,修復方法是將導入的項目屬性指向4.5.2框架。我選擇了一個較舊的框架,然後再次選擇4.5.2。這與其他幾十人一起擺脫了所提到的錯誤。

相關問題