C# Ajax调用页面加载两次Asp.net

C# Ajax调用页面加载两次Asp.net,c#,jquery,asp.net,ajax,C#,Jquery,Asp.net,Ajax,我有一个AjaxCall.aspx页面,它将由.ajax使用jquery调用另一个页面。 在AjaxCall.aspx上,我删除了所有的html标记,只剩下 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="AjaxCall.aspx.cs" Inherits="_AjaxCall" %> 我在Chrome developer tools in Network中监视ajax请求,我注意到每次我向AjaxCall.aspx

我有一个AjaxCall.aspx页面,它将由.ajax使用jquery调用另一个页面。 在AjaxCall.aspx上,我删除了所有的html标记,只剩下

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="AjaxCall.aspx.cs" Inherits="_AjaxCall" %>
我在Chrome developer tools in Network中监视ajax请求,我注意到每次我向AjaxCall.aspx页面发出ajax请求时,它都会连续请求两次。我后来进入调试模式,检查并发现pageload事件触发了两次。 我做了一些挖掘,发现一个空的img src与此有关,但问题是我在AjaxCall.aspx页面中没有任何html标记

后来我尝试添加回HTML主体和表单标记,并尝试再次调用该页面,好消息是它加载了一次,但一旦我将这些HTML标记添加回AjaxCall.aspx,它就会再次加载两次


我不能在AjaxCall.aspx中使用这些html标记,因为它假设在被请求时返回json格式的数据,使用这些html标记将在调用它的任何页面上导致错误。同时,我不想让它在我每次打电话时继续加载两次。那么,还有什么方法可以克服这个问题呢?

如果您想用application page.aspx和代码隐藏提供JSON响应,您必须刷新响应并关闭它才能停止该过程

如果不这样做,page.aspx将返回,可能带有一些HTML标记生成多个请求,比如带有错误src的img

试试这个:

protected void Page_Load(object sender, EventArgs e)
{
    Response.write("{ \"Testing\": \"Hello World!\" }");
    Response.Flush();
    Response.End();
}
此外,您还可以使用before your Response.write a Response.Clear以清除任何代码可能注入的可选内容,只是确保只发送此内容

protected void Page_Load(object sender, EventArgs e)
{
    Response.write("{ \"Testing\": \"Hello World!\" }");
    Response.Flush();
    Response.End();
}