Ajax возвращает «Не найдено» в ASP.NET MVC - PullRequest
0 голосов
/ 08 сентября 2018

У меня есть следующий код для кнопки 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». Папки «Представления» и «Контроллеры» находятся на одном уровне. Что я здесь не так делаю?

...