我有以下测试代码:
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。
答案 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;
}