Я хочу загрузить и сохранить файл вместе с другими пользовательскими данными, имеющими тип данных int, string и datetime. Я хотел бы сохранить файл на жестком диске и сохранить путь и другие входные данные в таблице базы данных SQL Server. Я получаю AggregateException
всякий раз, когда пытаюсь сделать оба вместе. Я новичок в ASP.NET MVC и веб-API.
Ниже приведен мой метод действия в проекте ASP.NET MVC.
public ActionResult AddOrEdit(mvcCandidate cn)
{
if (cn.ID == 0)
{
if (cn.cvFile.ContentLength != 0)
{
string filename = Path.GetFileNameWithoutExtension(cn.cvFile.FileName);
string extension = Path.GetExtension(cn.cvFile.FileName);
filename = filename + DateTime.Now.ToString("yymmssff") + extension;
cn.path = "~/Uploads/" + filename;
filename = Path.Combine(Server.MapPath("~/Uploads/"), filename);
cn.cvFile.SaveAs(filename);
}
else
cn.path = "";
try
{
HttpResponseMessage response = GlobalVariables.WebApiClient.PostAsJsonAsync("Candidates", cn).Result;
}
catch (AggregateException ex)
{
var ch = ex.Message;
return null;
}
}
}
И это метод действия в проекте WebAPI
public IHttpActionResult PostCandidate(Candidate candidate)
{
db.Candidates.Add(candidate);
db.SaveChanges();
return CreatedAtRoute("DefaultApi", new { id = candidate.ID }, candidate);
}
Класс модели выглядит следующим образом:
public class mvcCandidate
{
public int ID { get; set; }
[Display(Name="Name")]
public string Name { get; set; }
[Display(Name = "Address")]
public string Adress { get; set; }
[Display(Name = "Date Of Birth")]
[DataType(DataType.Date)]
public Nullable<System.DateTime> DOB { get; set; }
public string PIN { get; set; }
public Nullable<int> CompanyID { get; set; }
[Display(Name = "CV")]
public string path { get; set; }
public HttpPostedFileBase cvFile { get; set; }
public virtual mvcCompany Company { get; set; }
}