0

Visual Studio (Casini) を実行すると、期待どおりに動作する単純な ASP.NET UpdatePanel を取得しました。

ただし、ローカル 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 では、ポストバックが発生します。

4

2 に答える 2

1

web.config ファイルの Handlers セクションに次の行を追加します。

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

于 2012-06-13T06:12:59.630 に答える
0

ASP.NET AJAX では、Web ページが XHTML と互換性がある (HTML 4.0 ではない) 必要があります。実際、web.config に mode=Transitional を設定しないと、scriptManager がページにレンダリングされなくなり、すべての AJAX ヒットが通常のポストバックのように動作します。

web.config に入れる xhtmlConformance mode="Transitional"/>

リンクを確認してください。

于 2012-06-13T06:09:14.407 に答える