Я пытаюсь отправить объект типа "GenericUser" на вызов ajax, а затем отправить два свойства из этого объекта в контроллер, но безуспешно.
это объект GenericUser:
public class GenericUser
{
public string Username { get; set; }
public string Password { get; set; }
public int MessageId { get; set; }
public string UserId { get; set; }
public int Likes { get; set; }
public Service Service { get; set; }
public DateTime Time { get; set; }
public ApplicationUser User { get; set; }
public string Proffesion { get; set; }
public string CompanyName { get; set; }
public string School { get; set; }
public LocationModel Location { get; set; }
public string input { get; set; }
public IFormFile Photo { get; set; }
}
обратите внимание, что у него есть свойство "Photo" типа IFormFile и свойство "Service" типа Service, это два объекта, которые мне нужно получить из формы и в ajax для контроллер.
, вот так выглядит html:
<div class="addAPicture">
<form id="formt" enctype="multipart/form-data" asp-action="UploadImage" asp-controller="Actions">
<input id="file" asp-for="Photo" type="file"/>
<input id="service" asp-for="Service" />
<i>Add a picture</i>
</form>
</div>
, затем jquery & ajax:
$(document).ready(function () {
$("#checkChange").change(function () {
var fileInput = document.getElementById('file');
var serviceInput = document.getElementById('service');
var file = fileInput.files[0];
var service = serviceInput;
var formData = new FormData();
formData.append('photo', file);
formData.append('service', service);
if ($("#checkChange").val() !== "") {
$.ajax({
type: "POST",
url: '/Actions/UploadImage',
data: formData,
dataType: "JSON",
success: function (data) {
},
error: function (e) {
console.log(e);
}
});
}
});
});
и, наконец, метод контроллера:
public string UploadImage(Service service, IFormFile photo)
{
if (ModelState.IsValid)
{
if (photo!=null)
{
string uploadsFolder = Path.Combine(Hosting.WebRootPath, "images");
var uniqueFileName = Guid.NewGuid().ToString() + "_" + photo.FileName;
string filePath = Path.Combine(uploadsFolder, uniqueFileName);
photo.CopyTo(new FileStream(filePath, FileMode.Create));
return filePath;
}
}
var sessionId = _sessionManager.GetSession(service);
var bot = _factory.GetBot(service);
return null;
}
Сбой при вызове ajax и, вероятно, сбой на контроллере ... Я перепробовал множество потоков в Интернете, но не смог найти то, что могло бы кто-нибудь мне поможет?