AJAX / UpdatePanel无法在IIS7上运行

时间:2012-06-13 06:04:28

标签: asp.net ajax

我有一个简单的ASP.NET UpdatePanel,当我运行Visual Studio(Casini)时,它会按预期工作。

但是,一旦部署到我的本地IIS,它就不再起作用了。

什么配置错误?

我的代码:

<!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">
    <div>
        <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
        <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>
            </ContentTemplate>
            <Triggers>
                <asp:AsyncPostBackTrigger ControlID="Button1" />
            </Triggers>
        </asp:UpdatePanel>
    </div>
    <input id="Text1" type="text" />
    </form>
</body>
</html>

...和代码隐藏:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Presentation.Web
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            Label1.Text = DateTime.Now.ToString();
        }
    }
}

在Casini中,标签更新时没有回发。在IIS上,发生回发。

2 个答案:

答案 0 :(得分:1)

在web.config文件的“处理程序”部分中添加以下行:

<add name="Ajax" verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax"/>

答案 1 :(得分:0)

ASP.NET AJAX要求网页与XHTML兼容(不是HTML 4.0)。实际上,在web.config中没有mode = Transitional会阻止scriptManager甚至在页面中呈现,并且每个AJAX命中都会像常规的回发一样。

放入web.config xhtmlConformance mode =“Transitional”/&gt;

Chk link it should help u