У меня есть следующий код для кнопки HTML:
<div>
<input type="file" id="excelUpload" name="excelUpload" />
<input type="button" class="btn btn-success" value="Upload Excel" id="btnUploadExcel" />
</div>
У меня есть код ajax ниже:
$(document).on('click', '#btnUploadExcel', function () {
var $file = new FormData();
var files = $("#excelUpload").get(0).files;
// Add the uploaded image content to the form data collection
if (files.length > 0) {
$file.append("ExcelFile", files[0]);
}
$.ajax({
type: "POST",
url: "/api/excels",
data: { var1: $file },
dataType: 'json',
contentType: false,
processData: false,
error: function (xhr, status, error) {
alert("Error is " + error);
},
success: function (response) {
if (!response.Valid) {
alert(response.ErrorMessage);
}
else {
alert("File uploaded successfully");
}
}
});
return false;// if it's a link to prevent post
});
});
И у меня есть контроллер под названием ExcelsController.cs со следующим кодом:
[HttpPost]
public bool ReadFromExcel(([FromBody]dynamic value)
{
var filePath = value.var1.Value;
return true;
}
Итак, когда я нажимаю кнопку загрузки, запускается диалоговое окно с предупреждением в части ошибки кода ajax, которое гласит «Ошибка не найдена». Я предполагаю, что мой код контроллера даже не срабатывает, потому что когда я отлаживаю и устанавливаю точку останова в моем контроллере, он не доходит до него. Я просто хочу указать, что мой контроллер находится в папке, называемой папкой «controllers / api», а мой html находится в папке «Views / product / index». Папки «Представления» и «Контроллеры» находятся на одном уровне. Что я здесь не так делаю?