ASP.Net:元素< name>不是已知元素 [英] ASP.Net: Element <name> Is Not A Known Element

查看:94
本文介绍了ASP.Net:元素< name>不是已知元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直在尝试使用ASP.NET Ajax Control Toolkit中的AutoComplete Extender,但是要使其真正起作用我一直遇到很多麻烦.

I've been trying to use the AutoComplete Extender from the ASP.NET Ajax Control Toolkit, however I've been having tons of trouble getting it to actually work.

要安装AjaxControlToolKit,我将其放置在应用程序的bin目录中,然后将控件拖放到表单中.但是,它一直在说,

To install the AjaxControlToolKit, I've placed it inside my application's bin directoy, then I just dragged and dropped the control into the form. However, it keeps saying,

元素'AutoCompleteExtender'不是已知元素"

"Element 'AutoCompleteExtender' Is Not A Known Element"

所以起初,我以为我还没有注册它,但是当我查看标题时,它已经存在了:

So at first, I thought I had not registered it yet, but when I looked at the header, it was already there:

<%@ Register Assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,PublicKeyToken=31bf3856ad364e35" Namespace="System.Web.UI" TagPrefix="asp" %>

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" tagprefix="ajaxToolkit"%>

所以我根本不确定,为什么它仍然给我带来麻烦.

So I'm not sure at all, why its still giving me problems.

我的bin文件夹中的其他程序集文件包括:

Other assembly files in my bin folder include:

System.Web.Extensions.ddl System.Web.Extensions.Design.dll

System.Web.Extensions.ddl System.Web.Extensions.Design.dll

这是我的代码:

<asp:TextBox ID="txtOrganization" runat="server" Width ="500px" MaxLength ="250"></asp:TextBox>
<asp:ScriptManager ID="ScriptManager1" runat="server">
    <Services>
        <asp:ServiceReference Path="AutoComplete.asmx" />
    </Services>
</asp:ScriptManager>
<ajaxToolkit:AutoCompleteExtender runat="server" TargetControlID="txtOrganization" ServiceMethod="GetOrganizationList" ServicePath="AutoComplete.asmx"></ajaxToolkit:AutoCompleteExtender>

推荐答案

我对其进行了修复并使其正常运行.我必须对aspx页面和web.config进行更改.

I fixed it and got it working. I had to make changes to my aspx page and my web.config.

ASPX: 将此添加到我的页面顶部:

ASPX: Added this to the top of my page:

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" tagprefix="ajaxToolkit"%>

我的控件现在看起来像这样:

My control now looks like this:

        <asp:TextBox ID="txtOrganization" runat="server" Width ="500px" MaxLength ="250"></asp:TextBox>
        <asp:ScriptManager ID="ScriptManager1" runat="server" >
            <Services>
                <asp:ServiceReference Path="AutoComplete.asmx" />
            </Services>
        </asp:ScriptManager>
        <ajaxToolkit:AutoCompleteExtender runat="server" ID="AutoComplete1" 
                                          TargetControlID="txtOrganization" 
                                          ServicePath="AutoComplete.asmx" ServiceMethod="GetOrganizationList"
                                          MinimumPrefixLength="1" EnableCaching="true"
                                          FirstRowSelected="true">
        </ajaxToolkit:AutoCompleteExtender>

对于我的web.config,我添加了以下内容:

As for my web.config, I added the following:

<configSections>
    <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
        <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
            <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
            <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
                <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="Everywhere"/>
                <section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
                <section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
            </sectionGroup>
        </sectionGroup>
    </sectionGroup>
</configSections>

<system.web>
    <pages>
        <controls>
            <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
        </controls> 
    </pages>
    <customErrors mode="Off"/>
    <compilation debug="true" strict="false" explicit="true">
        <assemblies>
            <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
            <add assembly="System.Web.Extensions.Design, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
            <add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
            <add assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        </assemblies>               
    </compilation>
    <httpHandlers>
        <remove verb="*" path="*.asmx"/>
        <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
        <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
        <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>
    </httpHandlers>
    <httpModules>
        <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    </httpModules>
    <sessionState mode="InProc" cookieless="false" timeout="240"/>
    <!--
        The <authentication> section enables configuration 
        of the security authentication mode used by 
        ASP.NET to identify an incoming user. 
    -->
    <authentication mode="Forms"/>
    <!--
        The <customErrors> section enables configuration 
        of what to do if/when an unhandled error occurs 
        during the execution of a request. Specifically, 
        it enables developers to configure html error pages 
        to be displayed in place of a error stack trace.

    <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
        <error statusCode="403" redirect="NoAccess.htm" />
        <error statusCode="404" redirect="FileNotFound.htm" />
    </customErrors>
    -->
    <httpRuntime maxRequestLength="16000" useFullyQualifiedRedirectUrl="true" executionTimeout="180"/>
</system.web>
<system.web.extensions>
    <scripting>
        <webServices>
            <!-- Uncomment this line to customize maxJsonLength and add a custom converter -->
            <!--
  <jsonSerialization maxJsonLength="500">
    <converters>
      <add name="ConvertMe" type="Acme.SubAcme.ConvertMeTypeConverter"/>
    </converters>
  </jsonSerialization>
  -->
            <!-- Uncomment this line to enable the authentication service. Include requireSSL="true" if appropriate. -->
            <!--
    <authenticationService enabled="true" requireSSL = "true|false"/>
  -->
            <!-- Uncomment these lines to enable the profile service. To allow profile properties to be retrieved
       and modified in ASP.NET AJAX applications, you need to add each property name to the readAccessProperties and
       writeAccessProperties attributes. -->
            <!--
  <profileService enabled="true"
                  readAccessProperties="propertyname1,propertyname2"
                  writeAccessProperties="propertyname1,propertyname2" />
  -->
        </webServices>
        <!--
  <scriptResourceHandler enableCompression="true" enableCaching="true" />
  -->
    </scripting>
</system.web.extensions>
<system.webServer>
    <validation validateIntegratedModeConfiguration="false"/>
    <modules>
        <add name="ScriptModule" preCondition="integratedMode" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    </modules>
    <handlers>
        <remove name="WebServiceHandlerFactory-Integrated"/>
        <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
        <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
        <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    </handlers>
</system.webServer>

最初,由于我使用的是asp.net 2.0,因此System.Web.Extensions的版本号为1.6....所以我不得不将其全部更改为3.5.0.0.

Originally, since I'm using asp.net 2.0, the version numbers of System.Web.Extensions was 1.6.... So I had to change it all to 3.5.0.0.

此外,在寻找解决方案时,很多人说我必须将System.Web.Extensions.dll和System.Web.Extensions.Design.dll的副本放入bin文件夹中.我不必这样做,我只是添加了对它们的引用.

Also, while searching for a solution, alot of people said I had to put a copy of System.Web.Extensions.dll and System.Web.Extensions.Design.dll into the bin folder. I didn't have to do this, I just merely added a reference to them.

这篇关于ASP.Net:元素&lt; name&gt;不是已知元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆