【问题标题】:Ajax call success function duplicates the returned jsonAjax调用成功函数复制返回的json
【发布时间】:2016-02-03 04:31:59
【问题描述】:

在此代码中,从控制器返回的 json 显示 5 个项目,但在 ajax 调用成功函数中重复。

HTML

 <select class="form-control  id="books">
 </select>

我的 Ajax 调用

  function LoadBooks(rackNo) {
    debugger;

    $.ajax({
        url: '@Url.Action("GetBookDetails", "Books")',
        type: "POST",
        async: false,
        data: JSON.stringify({ rackNo: rackNo }),
        dataType: "json",
        contentType: "application/json; charset=utf-8",

        success: function (_booklst) {
            debugger;

            console.log(_booklst);
                $('#books').empty();
                $.each(_booklst, function (index, item) {
                    $('#books').append($('<option><option/>').val(item.bookno).text(item.bookname));
                });

        }
    });

}

【问题讨论】:

  • 有什么问题?有什么问题?
  • 因为您的控制器方法返回 5 个重复项。
  • 问题是 _booklst 有 5 个项目,但是当它绑定到下拉列表时,它绑定了 10 个项目.. 每个项目都重复。
  • @StephenMuecke No. 它返回 5 个项目
  • 编辑您的问题以解释问题并展示您如何调用LoadBooks() 函数。

标签: c# jquery json ajax asp.net-mvc


【解决方案1】:

你需要改变

$.each(_booklst, function (index, item) {
    $('#books').append($('<option><option/>').val(item.bookno).text(item.bookname));
});

$.each(_booklst, function (index, item) {
    $('#books').append($('<option></option>').val(item.bookno).text(item.bookname));
});

/'&lt;option&gt;&lt;/option&gt;'中的位置)

【讨论】:

    【解决方案2】:

    这就是问题所在。使用

    &lt;select class="form-control" id="books"&gt; &lt;/select&gt;

    而不是

     <select class="form-control  id="books">
     </select>
    

    【讨论】:

    • 其他由于class="form-control 之后缺少" 而无法正常工作,您认为这应该有什么不同,以及它如何解决 OP 的问题。
    • @StephenMuecke 在操作的问题中他失踪了“。我刚刚纠正了它
    • 是的,但这只是问题文本中的一个错字,这个答案根本没有解决 OP 问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 2013-03-10
    • 2015-10-30
    • 1970-01-01
    相关资源
    最近更新 更多