JQuery Drag and Drop - несколько зон перетаскивания, созданных с помощью foreach - PullRequest
0 голосов
/ 19 декабря 2018

Я пытаюсь заставить загрузку файлов с помощью перетаскивания работать в моем веб-приложении - однако я создал несколько зон перетаскивания с помощью foreach ...

            @foreach (var addin in Model.Addins)
            {
                <div class="manageContainer" data-id="@addin.AddinId.ToString()">
                    <div class="row" style="margin-top: 16px;">
                        <div class="col-xs-12 col-sm-3">
                            <h5>@addin.AddinName</h5>
                        </div>
                        <div class="col-xs-12 col-sm-7">
                        </div>
                        <div class="col-xs-12 col-sm-2" style="text-align: right;">
                            <label type="label" class="switch">
                                <input type="checkbox" class="subscribe-button" id="subscribeAddin" value="@addin.IsSubscribed" @(addin.IsSubscribed ? "checked" : "") />
                                <span class="slider round"></span>
                            </label>
                        </div>
                        <div class="col-xs-12 col-sm-7 configuration">
                            <br />
                            <a class="saveAnalyticsButton config-button" nohref=nohref onclick="Download(this)" data-id="@addin.AddinName">Download Configuration</a>
                            <div class="col-xs-12 col-sm-7 dropArea" id="dropArea">
                                Drop your configuration here
                            </div>
                        </div>                                
                    </div>
                    <br />
                </div>
                <br />
            }

Я могу успешно отправитьфайл на мой контроллер - но не со всеми данными, которые мне нужны!Мне нужно захватить идентификатор надстройки (хранится как data-id в "manageContainer"), чей файл конфигурации загружается, и отправить его на контроллер вместе с файлом.

Вот как яв настоящее время пытаюсь получить этот идентификатор, который я хотя бы наверняка сработал, но это не так ...

$(function () {  
    $('.dropArea').filedrop({
        url: "/Manage/UploadConfig",
        allowedfiletypes: ['text/xml'],
        allowedfileextensions: ['.xml'],
        paramname: 'config',
        data: {
            addinId: function () {
                var id = $(this).closest('.manageContainer').attr("data-id");
                return id;
            }
        },
        maxfiles: 1,
        maxfilesize: 5, // in MB
        dragOver: function () {
            $(this).addClass('active-drop');
        },
        dragLeave: function () {
            $(this).removeClass('active-drop');
        },
        drop: function () {
            $("#loading").show();
            $(this).removeClass('active-drop');
        },
        afterAll: function (e) {
            $(this).html('config uploaded successfully');
        },
        uploadFinished: function (i, file, response, time) {
            $("#loading").hide();
        }
    });
});

Я работал над этим все утро и сейчас совершенно потерян.Любая помощь будет принята с благодарностью !!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...