Ajax扩展适用于母版页但不适用于内容页

时间:2013-08-26 10:23:58

标签: asp.net ajax

我已经安装了Ajax Extension并添加了对该应用程序的引用。我面临一个非常奇怪的问题,我的母版页接受Ajax扩展工具,因为我的内容页面抛出错误,如“元素ScriptManager / UpdatePanel不是已知元素。”

My WebConfig:
<?xml version="1.0"?><configuration>

  <system.web>
  <customErrors mode="Off">

  </customErrors>
    <authentication mode="Windows"/>
  <pages>
    <controls>
      <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    </controls>
  </pages>

  </system.web>
  </configuration>


My contentPage:
<%@ Page Language="C#"  MasterPageFile="~/yuva.master" AutoEventWireup="true"   CodeBehind="PicSave.aspx.cs" Inherits="YuvaRK12.PicSave" %>


 <asp:Content ID="MypicSave" runat="server"  ContentPlaceHolderID= "MainCPH" >
 <table id="Main" style="width:100%; height:350px; background-color:White;"><tr><td>

 <asp:Label ID="lbl1" runat="server"></asp:Label>
 <asp:Label ID="vis" runat="server" ></asp:Label>

   <table id="Photo" style=" margin-left:auto; margin-right:auto;">
   <tr><td>
         <asp:FileUpload ID="FileUpload1" runat="server"  />

   </td></tr>
   <tr><td>

       <input  id="ImageBT"  
               type="button" 
               value="Upload Image" 
               runat="server" 
               onserverclick="ImageBT_ServerClick" style=" float:left;" />

   </td></tr><tr><td style="border-style:ridge;  border-width:3px;">
   <center>

         <asp:Image id="MyImg" runat="server" 
                    style="width:150px; 
                    height:150px;"  
                    BorderStyle="solid" 
                    BorderWidth="1px"/>
   </center>
   </td></tr></table>  <!-- Photo End Here-->

    <center>
    <table><tr><td>
     <asp:Button ID="SBtn" runat="server" 
                 Text="Submit" BorderStyle="ridge"  
                 BorderWidth="4px" 
                 OnClick="SBtn_Click" />
   </td></tr></table>
   </center>

   </td></tr></table><!--Main End here-->
   </asp:Content>

我在这里缺少什么?非常奇怪的Ajax扩展正在使用母版页而不是内容页面!它的解决方案是什么?。

2 个答案:

答案 0 :(得分:2)

YES。您可以在Web应用程序中使用AJAX,而无需安装 ajax toolkit

要在Web应用程序中使用AJAX,可以使用预定义的库。您可以在工具箱中的“AJAX Extensions”下找到这些控件。使用脚本管理器更新面板进行部分回发到服务器。

<form id="form1" runat="server">
<div>
    <asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
        <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
        <asp:Button ID="Button1" runat="server" Text="Button" />
    </ContentTemplate>
    </asp:UpdatePanel>
    <asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>
</div>
</form>

Button1 的上述代码中,仅 Label1 将传递给服务器,而不是 Label2 。更新面板外的任何控件都不会进入服务器,因此它是部分回发。

您可以详细了解触发器,以提高AJAX回调的效率。

注意: AJAX工具包适用于高级控制,如手风琴,动画等。对于基于AJAX的简单Web应用程序,您不需要它们。

答案 1 :(得分:0)

我已经利用金色的两个星期进行这样的拼图,最后成功了。我搜索了许多文章,大部分文章都如上所述,这对我这样的新手产生了误解。

解决方案是:

<pages>
<controls>
  <add tagPrefix="ajax" namespace="System.Web.UI" assembly="System.Web.Extensions,   Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</controls>

在web.config配置的section / controls部分中将“asp”更改为“ajax”将使您完全控制现有Asp.Net Web应用程序中的ajax扩展。