我对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”。 “视图”和“控制器”文件夹处于同一级别。我在这里做错了什么?