Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.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#_Asp.net_Jquery - Fatal编程技术网

C# AJAX回调不刷新页面

C# AJAX回调不刷新页面,c#,asp.net,jquery,C#,Asp.net,Jquery,大家好,我遇到了一个问题,我正在进行AJAX回调: var htmlToInject; function Next(step) { var options = { cache: false, type: "POST", url: "Page.aspx?Page=" + step, data: "{}",

大家好,我遇到了一个问题,我正在进行AJAX回调:

var htmlToInject;
        function Next(step) {
            var options = {
                cache: false,
                type: "POST",
                url: "Page.aspx?Page=" + step,
                data: "{}",
                contentType: "application/json; charset=utf-8",
                dataType: "html",
                success: function (result) {                   
                    htmlToInject = result;                  
                },
                error: function (jqXHR, textStatus, errorThrown) {                   
                },
                complete: function (jqXHR, textStatus) {                  
                    $("#form1").empty();
                    $("#form1").append(htmlToInject);                  
                }
            };
            $.ajax(options);
        }
但问题在于我在哪里使用jQuery验证方法以及动态创建控件。因此回调不会导致回发,因此不会生成控件,我通过这样做解决了这一问题:

                        $("#form1").empty();
                        $("#form1").append(htmlToInject);      
然后显示新生成的控件

但是字段上的验证给了我错误:“设置”为空

我查看了页面源代码,该源代码用于先前生成的控件。我不想发帖,因为我不想看到“加载”效果,因此我使用ajax

伙计们,我怎么能克服这个问题


非常感谢。

如果您使用的是低调的ajax,您可以根据需要在success/complete函数中执行此操作:


$('#form1').html(htmlToInject);
$.validator.unobtrusive.parse('#form1');
我查看了页面源代码,源代码就在那里 以前生成的控件

若你们谈论的是右键单击->查看源代码,那个么当页面加载常规POST/get时,它会显示你们最初从服务器上获得的HTML(一些浏览器甚至会重复请求服务器获取它)。如果您想看到JS/AJAX所做的更改,您需要使用开发人员工具。所有现代浏览器都有这种功能。FireFox可能需要安装Firebug。只需按F12键即可查看这些工具

但是字段上的验证给了我错误:“设置”为空

更改表单内容后,我看不到任何验证初始化代码:

complete: function (jqXHR, textStatus) {                  
                    $("#form1").empty();
                    $("#form1").append(htmlToInject);                  
                }

您应该添加
$(“#form1”)。在放置新表单元素后再次验证({…})
(或验证插件的初始化方式)

HtmlToInjector变量有$(“#form1”).validate({…})作为要验证的控件集的一部分,我使用开发人员工具检查了页面的源代码,但它没有出现在那里。jQuery将其删除。试着把它移到完整的功能中,看看它是否能工作。可能
$(“#form1”).html(HTMLToInjection)
会工作,但不确定。我正在完整的函数中执行它,它根本不在那里,也不工作。你在做什么?据我所知,
htmlointer
包含一段
..
,您希望
.append(htmlointer)
将执行该脚本,对吗?我认为您无法在尝试时将javascript包含在返回的HTML中(即使用“html”类型。这可能会给您一些线索:getting不包含不引人注目的属性或方法错误。确定-您必须使用不同的机制来连接验证,类似于FAngel所建议的。