Kendo 初始文件选择后上传复制文件

Kendo Upload Duplicating File After Initial File Selection

我们正在使用 Telerik ASP.NET MVC VSExtensions 2019.1.116.1 并且有一个使用上传控件的 MVC 应用程序。我们面临的问题是我们第一次打开上传控件和 select 文件资源管理器中的文件时,它正在复制控件中的 selected 文件。

我们正在使用异步选项,它会去我们的控制器一次处理文件,但它会显示同一个文件两次。它在第一个文件上将状态设置为成功,但它永远不会关闭,因为上传图标一直显示并且 "second" 文件永远不会发送到控制器。

如果我们关闭这个控件然后重新点击按钮打开控件和select一个文件,它只显示一次文件并调用控制器处理文件并按预期工作。

此外,如果我们重新加载页面然后使用拖放操作,它会按预期工作,所以这只是我们第一次加载页面并单击 Select 文件按钮时它会复制显示的文件。

我们使用隐藏的 "div" 作为上传控件并关联 text/buttons,然后我们有一个显示 div.

的按钮
<div id="cdpUploadScheduleEvents" style="display: none; border-style:solid">
    <p class="panel panel-info">
        Please select the file.
    </p>
    @(Html.Kendo().Upload().Name("files"))

    <div style="width: 15%; margin: auto;">
        <button id="closeUploadBtn"class="button btn4 center-block btn-block" onClick="CloseUploadPane()">Close</button>
    </div>
</div>

我们在$(document).ready:

中初始化kendo控件
     $("#files").kendoUpload({
            multiple: false,
            async: {
                saveUrl: '@Url.Action("UploadFile", "MyCtl", new {masterId = @Model.masterId})',
                removeUrl: '',
                autoUpload: true
            },
            error: onKendoError,
            complete: onKendoComplete,
            upload: onKendoUpload,
            select : onKendoSelect,
            validation: {
                allowedExtensions: [".csv", ".xls", ".xlsx"]
            }
        });

这是我的 OnSelect,我在那里有一个显示文件数量的警报,它总是显示 1 个文件是 selected:

 function onKendoSelect(e) {
        var selectedFiles = e.files.length;
        alert('Files selected ' + selectedFiles);
        if (selectedFiles > 1) {
            $(".k-upload-files > li:eq(1)").remove();
        }
    };

不确定为什么第一次使用该控件时它会重复,之后每次如果功能正常,或者为什么拖放操作每次都能正常工作。

您正在两次初始化上传小部件。我想这就是它表现如此奇怪的原因。只需将所有初始化放入 Razor 代码中,然后从 $(document).ready.

中删除这些东西