Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.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# 将数据加载到动态填充的局部视图中的选择下拉菜单_C#_Javascript_Jquery_Ajax_Json - Fatal编程技术网

C# 将数据加载到动态填充的局部视图中的选择下拉菜单

C# 将数据加载到动态填充的局部视图中的选择下拉菜单,c#,javascript,jquery,ajax,json,C#,Javascript,Jquery,Ajax,Json,我正在使用Javascript将部分视图动态加载到DIV中: $.ajax({ url: '@Url.Action("Details","User")', data: { id: userId}, type: 'post', success: function (data) { $("#user-details").show().html(data);}) 当显示时,我想填充一些下拉菜单供用户选择。 假设我

我正在使用Javascript将部分视图动态加载到DIV中:

    $.ajax({
        url: '@Url.Action("Details","User")',
        data: { id: userId},
        type: 'post',
        success: function (data) {
        $("#user-details").show().html(data);})
当显示时,我想填充一些下拉菜单供用户选择。 假设我想填充一个UserCategories列表

因此,在上述ajax调用成功后,我会:

                $.getJSON('@Url.Action("GetUserCategories","User")',function(data) {
                $.each(data, function (key, item) {

                    $("#userCategories-list").append(
                        $("<option></option>").text(item.Name).val(item.Id)
                    );
                });
            });
未填充UserCategories列表

我假设这是因为包含UserCategories下拉菜单的UserDetails源html是动态呈现的,而没有显示在页面上

我如何访问和填充用ajax调用显示的userCategories列表下拉菜单,以及在查看页面源代码/Firebug时看不到的HTML/控件名称


提前谢谢。

不能肯定,但我猜当调用列表创建函数时,您的局部视图不是浏览器DOM的一部分。事实上,我没有看到任何代码将您的部分加载到浏览器中进行渲染

您是否尝试过使用firebug或应用程序进行调试?您可以在函数中设置断点,并查看实际情况

 $.ajax({
        url: '@Url.Action("Details","User")',
        data: { id: userId},
        type: 'post',
        success: function (data) { 
            $("#partialContainer").html(data);
            $.getJSON('@Url.Action("GetUserCategories","User")',function(listData) {
                $.each(listData, function (key, item) {
                    $("#userCategories-list").append(
                        $("<option></option>").text(item.Name).val(item.Id)
                    );
                }); //each
            )); //getJson
        } //success anon function
  }); //$.ajax

代码停在哪里?第二个AJAX调用被解雇了吗?每个语句都被调用了吗?是否调用了each中的函数?我之前有一个alertitem.Name用于测试。append,它会很好地触发。弹出窗口显示正确的数据。似乎找不到userCategories列表,因此没有将这些项追加到itAlso,追加函数$edited上缺少分号,在内部ajax调用中将数据更改为listData。并且,修复了getJSON.Hmmm中缺少的括号。。它似乎与我的代码没有太大区别。顺便说一句,valitem.Id后面的分号不属于这里,它现在起作用了。我不确定到底有什么区别。我想我被缓存搞砸了。谢谢