InnerHtml无法使用ASP

时间:2013-08-04 20:51:47

标签: asp.net webforms innerhtml

我有以下测试代码:

    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。

1 个答案:

答案 0 :(得分: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调用的settings参数中:

success: function(data){
     $("<%=MyDiv.ClientId%>").innerHTML = "2=" + data.responseText;
}