Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 函数在ajax调用中不能正常工作_C#_Jquery_Html_Ajax - Fatal编程技术网

C# 函数在ajax调用中不能正常工作

C# 函数在ajax调用中不能正常工作,c#,jquery,html,ajax,C#,Jquery,Html,Ajax,我有2个dnn模块。我有一个jQuery Ajax函数,它在$(document.ready()上的B上运行 AJAX调用模块A中的page_load事件 if (Request.Headers["X-OFFICIAL-REQUEST-MINE"] == "TRUE") { AjaxWrapper(Request.Headers["X-ItemString"].ToString()); } AjaxWrapper具有以下代码 protected void Aj

我有2个dnn模块。我有一个jQuery Ajax函数,它在$(document.ready()上的B上运行

AJAX调用模块A中的page_load事件

 if (Request.Headers["X-OFFICIAL-REQUEST-MINE"] == "TRUE")
   {
      AjaxWrapper(Request.Headers["X-ItemString"].ToString());
   }
AjaxWrapper具有以下代码

    protected void AjaxWrapper(string Inputstring)
    {
        Label testLbl = new Label();
        testLbl.Text = Inputstring;
        DynamicPlaceHolder.Controls.Add(testLbl);   


        Inputstring = " This c# call from ajax works!!!";
        Response.Clear();
        Response.ContentType = "text";
        byte[] b = Response.ContentEncoding.GetBytes(Inputstring);
        Response.AddHeader("Content-Length", b.Length.ToString());
        Response.Write(Inputstring);
        Response.Flush();
        Response.Close();
        Response.End();
        return;
    }
AjaxWrapper的前3行不起作用,标签也没有显示在屏幕上,但AjaxSuccess功能起作用。向我显示字符串“This c#call from ajax works”是一个警告

下面是来自B的ajax调用

jQuery.ajax({
            type: "POST",
            async: "false",
            url: location.href,
            contentType: "application/json; charset=utf-8",
            data: (jsonData),
            dataType: "text",
            success: function (data, textStatus, jqXHR) {
               alert("Response" + jqXHR.responseText);
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                alert("Error: " + textStatus + ", " + errorThrown);
            },
            beforeSend: function (xhr) {
                xhr.setRequestHeader("X-ItemString", $Pids);
                xhr.setRequestHeader("X-OFFICIAL-REQUEST-MINE", "TRUE"); // Used to ID as a AJAX Request
            },
            complete: function (XMLHttpRequest, textStatus) {
            }
        });

Asp.Net的工作原理是将控件树转换为HTML—以创建HTML页面的方式

当您通过AJAX调用服务器时,您需要知道您的页面加载是在服务器上的一个控制树上运行的,该控制树永远不会传递给客户端

再次重申,服务器上运行的代码不能直接在浏览器中操作DOM

如果直接使用jQuery,则必须考虑从服务器向客户端传递数据或消息。无论消息是HTML、文本还是JSon,您都必须用Javascript处理该消息,从而相应地改变页面的布局

Net是一个非常糟糕的环境来做这种事情。请注意,如果您希望能够使用jQuery,并且希望回发能够反映更改,那么这将非常困难,除非您知道自己在做什么

如果您刚刚开始您的项目,请查看MVC-jQuery在MVC中更有意义,并且有更少的陷阱