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 回发可能会更好,但为了简单起见,我只是坚持使用一页。

然后在 ajax 调用的设置参数中添加如下内容:

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