У меня есть дропзона. js контроль, связывание с последующим действием. Это действие загружает данные файла на серверную базу данных SQL и возвращает строку JSON.
Итак, я загружаю файл CSV, после чего метод Post в контроллере получает удар. Работает нормально. Данные загружаются на сервер SQL гладко. Строка JSON возвращается без проблем. Я отлаживал до конца.
При возврате данных из действия в зоне сброса события успеха или завершения в зоне сброса не запускаются. (Они сработали дважды за последние три часа, когда я работал над этим, я просто не уверен, что случилось и почему он сработал дважды раньше, но не больше)
Кроме того, на панели загрузки не отображается тик / крестик ,
JS код:
Dropzone.options.dropzoneForm = {
maxFiles: 1,
init: function () {
this.on("complete", function (data) {
console.log(data);
});
this.on("queuecomplete", function (test) {
debugger;
while (this.files.length > 1) {
this.removeFile(this.files[1]);
}
});
this.on("success", function (file, response) {
debugger;
console.log("success");
var parsed = $.parseJSON(response);
});
this.on("error", function (file, response) {
debugger;
console.log("sucessos");
var parsed = $.parseJSON(data.d);
});
}
, autoProcessQueue: true
, parallelUploads: 1
, maxFilesize: 50
, filesizeBase: 1024
, addRemoveLinks: false
, acceptedFiles: ".csv,.xls,.xlsx"
, confirmDeleting: true
, dictDefaultMessage: 'Drop files here to upload'
, renameFilename: function (name) {
return name;
}
};
cs Html
@using (Html.BeginForm("Index", "Home", FormMethod.Post, new { enctype = "multipart/form-data", @class = "dropzone", @id = "dropzoneForm" }))
{
<div class="fallback">
@Html.ValidationMessageFor(model => model.file)
</div>
}
Метод c#, который отлично работает и возвращает строку. Я отладил.
[HttpPost]
public string Index(ImportType importExcel)
{}
Что я делаю не так? Почему события не стреляют? Пожалуйста, помогите мне.
Заранее спасибо. Junaid