Я отправляю файл из jquery ajax в основной веб-интерфейс asp.net, но веб-интерфейс принимает все свойства как нулевые.
public class YuklenecekDosya
{
public IFormFile File { get; set; }
public int ID { get; }
public string TableAdi { get; }
}
[HttpPost]
public IActionResult Upload([FromForm]YuklenecekDosya File)
{
var file = File.File;
if (file == null || file.Length == 0)
return Content("Yuklenecek fayl Secmemisiniz!");
if (file.Length > 0)
{
string path = Path.Combine(_env.WebRootPath, "Dosyalar");
string fullfilepath = Path.Combine(path, file.FileName);
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
using (var fs=new FileStream(fullfilepath, FileMode.Create))
{
file.CopyTo(fs);
}
return new OkObjectResult(file);
}
return BadRequest();
}
и код клинсайда ajax, как показано ниже:
let f=new FormData();
f.append('File',$('input').files[0]);
let File={
File:f,
iD:2,
tableAdi:"Table1"
};
$.ajax({
method:'Post',
url:'api/Values/Upload',
data:File,
processData:false,
contentType:false,
enctype: 'multipart/form-data',
}).then(model=>{
console.log(model);
});
когда я его отлаживаю, все в параметре YuklenecekDosya дает ноль.
Я не могу понять, где проблема.
кстати, когда я пытаюсь использовать параметр как просто IFormFile, а не YuklenecekDosya, он работает, но когда я беру IFormFile в качестве свойства параметра YuklenecekDosya, он дает все свойства null