0

次のテストコードがあります。

    protected void Page_Load(object sender, EventArgs e)
    {
        MyDiv.InnerHtml = "1=" + Request.Form.Count.ToString();      // WORKING

        if (Request.Form.Count > 0)
        {
            MyDiv.InnerHtml = "2=" + Request.Form.Count.ToString();  // NOT WORKING
        }  
    }

なぜこうなった?Page.IsPostback 機能を使用する必要がありますか? 私のjavascriptコードではうまく機能しないため、それを避けようとしています。データを投稿するときは、jquery ajax を使用します。

4

1 に答える 1

0

AJAX 呼び出しを行うときに ASP ページ全体がリロードされず、ブラウザで MyDiv が更新されないため、機能していません。

次のようなことをする必要があります。

protected void Page_Load(object sender, EventArgs e)
{
    MyDiv.InnerHtml = "1=" + Request.Form.Count.ToString();      // WORKING

    if (Request.Form.Count > 0)
    {
        Response.Write(Request.Form.Count.ToString());
        Response.End();
    }  
}

コード メンテナンスの観点からは、ajax ポストバックを受信するための特別なページまたはハンドラーを作成する方がおそらく良いでしょうが、簡単にするために 1 つのページに固執しています。

そして、次のようなものを ajax 呼び出しの設定パラメーターに追加します。

success: function(data){
     $("<%=MyDiv.ClientId%>").innerHTML = "2=" + data.responseText;
}
于 2013-08-04T21:45:14.860 に答える