我已经安装了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扩展正在使用母版页而不是内容页面!它的解决方案是什么?。
答案 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扩展。