este es mi html
<form enctype="multipart/form-data" class="needs-validation" id="formRequestLeave2"> <div class="row form-group"> <label class="col-md-4" for="File"><strong>Upload File</strong></label> <div class="col-md-7 form-control"> <input class="form-control custom-file-input" id="fileUpload" name="File" type="file" required> <label class="custom-file-label">Choose File...</label> </div> </div> </form>este es mi javascript
function Insert() { event.preventDefault(); var obj = new Object(); obj.EmployeeId = $("#employeeId2").val(); obj.File = $("#fileUpload").val(); manager = $("#managerName2").val() $.ajax({ url: "/LeaveDetails/LeaveRequest", type: "POST", 'data': obj, }) }este es mi controlador
public JsonResult LeaveRequest(LeaveRequestVM leaveRequestVM) { string uniqueFileName = null; if (leaveRequestVM.File != null) { string uploadsFolder = Path.Combine(hostingEnvironment.WebRootPath, "files"); uniqueFileName = Guid.NewGuid().ToString() + "_" + leaveRequestVM.File.FileName; string filePath = Path.Combine(uploadsFolder, uniqueFileName); leaveRequestVM.File.CopyTo(new FileStream(filePath, FileMode.Create)); } leaveRequestVM.uniqueFileName = uniqueFileName; var result = repository.LeaveRequest(leaveRequestVM); return Json(result); }Estoy tratando de enviar una entrada de tipo de archivo a mi controlador desde mi vista usando ajax pero salió nulo. He estado tratando de usar
contentType: false, processData: false <form id="frmproduct" method="post" asp-antiforgery="true" class="row gy-1 pt-75" onsubmit="return false"> <span class="btn btn-primary btn-sm btn-file"> <input type="file" name="Image"> </span> </form> <script> frmproduct.onsubmit = async (e) => { e.preventDefault(); if (!$("#frmproduct").valid()) return false; let response = await fetch('/base/product/Create', { method: 'POST', body: new FormData(frmproduct) }); let data = await response.json(); }; </script>y obtenga el archivo del controlador
[HttpPost, ValidateAntiForgeryToken] public async Task<JsonResult> Create(ProductViewModel model, CancellationToken cancellationToken) { var File= Request.Form.Files; }