拖放区.js已连接

本文关键字:连接 js 拖放区 | 更新日期: 2023-09-27 18:33:15

我已经在我的项目中实现了dropzone,一切正常。 除了浏览器决定在页面要求清晰时抛出错误 我已经修剪了视图,因为它很长,但下面的 HTML 目前存在于表单中(不确定这是否会导致问题( 我只有一个对此处显示的 dropzone 的引用, 放置区.js再次包含在捆绑包配置中,仅出现一次。

错误

:if(this.element.dropzone(抛出新的错误("Dropzone已连接。

这是我的观点

<div class="form-group">
    <div class="col-xs-12 dropzone" id="UploadImage">
         <input type="file" id="id-input-file-2" />
     </div>
</div>

这就是我创建拖放区的方式

 $(document).ready(function () {
        $("div#UploadImage").dropzone({ url: '@Url.Action("SaveUploadedFile", "Person")' });
 });

和我的控制器如下

 public ActionResult SaveUploadedFile()
    {
        bool success = true;
        string fName = string.Empty;
        try
        {
            foreach (var file in Request.Files.Cast<string>().Select(fileName => Request.Files[fileName]).Where(file => file != null))
            {
                fName = file.FileName;
                if (file.ContentLength > 0)
                {
                   // will write the rest of the code here
                }
            }
        }
        catch (Exception ex)
        {
            success = false;
        }
        return Json(success ? new { Message = fName } : new { Message = "Error in saving file" });
    }

现在我能够在控制器中检索图像,只是不确定在代码中再次初始化拖放区的位置,这导致了上述错误。

更新

尝试戴夫斯建议后,我的jquery现在看起来像这样

$(document).ready(function () {
        Dropzone.options.myAwesomeDropzone = false;
        $("div#UploadImage").dropzone({
            url: '@Url.Action("SaveUploadedFile", "Person")',
            addRemoveLinks: true,
            removedfile: function (file) {
                var name = file.name;
                $.ajax({
                    type: 'POST',
                    url: '@Url.Action("DeleteUploadedFile", "Person")',
                    data: "id=" + name,
                    dataType: 'html'
                });
                var ref;
                return (ref = file.previewElement) != null ? ref.parentNode.removeChild(file.previewElement) : void 0;
            },
            maxFilesize: 2,
            maxFiles: 12,
        });
});

但我仍然收到错误。

拖放区.js已连接

从参考这里尝试

  1. 像这样全局关闭自动发现:Dropzone.autoDiscover =假;或

  2. 关闭特定元素的自动发现,如下所示: Dropzone.options.myAwesomeDropzone = false;

从 UploadImage 元素上的类属性中删除"dropzone",错误将消失。我遇到了同样的问题,并解决了它。

我认为您通过将自动发现设置为 false 并将元素的类设置为"dropzone"来为插件提供混合消息。

这是唯一对我有用的解决方案。

我最终所做的是将css类重命名为"dropzone1",然后在basic.cs和dropzone.cs文件中将所有"dropzone"实例重命名为"dropzone1"。 这样我就保留了所有的CSS样式。

一旦我这样做了,它就像一个魅力。