C# 将数据加载到动态填充的局部视图中的选择下拉菜单
我正在使用Javascript将部分视图动态加载到DIV中: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);}) 当显示时,我想填充一些下拉菜单供用户选择。 假设我
$.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后面的分号不属于这里,它现在起作用了。我不确定到底有什么区别。我想我被缓存搞砸了。谢谢