Я пытаюсь загрузить некоторые данные (имя, фамилию, имя файла, содержимое файла) в базу данных, но когда я нажимаю кнопку отправки, она входит в функцию PostUser
со значением null
, и я получаю это ошибка .
Это часть моего кода:
Модель (CS)
public class User
{
[Key]
public int Id { get; set; }
[Required]
public string Nome { get; set; }
[Required]
public string Cognome { get; set; }
public string FileName { get; set; }
public byte[] PdfContent { get; set; }
}
ViewModel (CS)
public class PdfViewModel
{
/// <summary>
/// L'oggetto pdf che verrà salvato a database
/// </summary>
public User User { get; set; }
/// <summary>
/// Il file che viene postato dalla finestra di upload: non ha ancora il datatype richiesto dal modello Pdf
/// Perciò creo una nuova proprietà per elaborarlo in binario prima di inserirlo nella table Pdfs
/// </summary>
public HttpPostedFile HttpPostedFileBase { get; set; }
}
Контроллер (от имени пользователя)
[ResponseType(typeof(PdfViewModel))]
public async Task<IHttpActionResult> PostUser(PdfViewModel pdfViewModel)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
pdfViewModel.User.PdfContent = ProvaUnoManager.GetEncodedFile(pdfViewModel.HttpPostedFileBase);
pdfViewModel.User.FileName = pdfViewModel.HttpPostedFileBase.FileName;
db.Users.Add(pdfViewModel.User);
db.SaveChanges();
await db.SaveChangesAsync();
return CreatedAtRoute("DefaultApi", new { id = pdfViewModel.User.Id }, pdfViewModel);
}
Это веб-приложение ASP.NET (.NET Framework)