长话短说,我认为我在使用
@using (Html.BeginForm("AddFormToOrder", "Form", FormMethod.Post, new { @id = "OrderForm", enctype = "multipart/form-data" }))
将上传文件,选择文件并单击“添加到订单”按钮后,将使用以下信息触发AddFormToorder
模型
public class Orders
{
public List<Forms> FormList { get; set; }
public Orders()
{
FormList = new List<Forms>();
}
}
public class Forms
{
public ICollection<IFormFile> Files { get; set; }
}
在我的控制器中,我正在这样做
public IActionResult AddFormToOrder(Forms form)
{
var Orders = JsonConvert.DeserializeObject<Orders>(HttpContext.Session.GetString("Shop_Orders"));
Orders.Forms.Add(form);
var serializedModel = JsonConvert.SerializeObject(Orders);
HttpContext.Session.SetString("Shop_Orders", serializedModel);
return RedirectToAction("Index", "Form");
}
这个问题是,一旦返回并转到索引,我会再次反序列化,但是会收到以下错误消息
JsonSerializationException:无法创建类型为Microsoft.AspNetCore.Http.IFormFile的实例。类型是接口或抽象类,无法实例化。
现在,如果我添加了一个没有文件的订单,那么一切都会正常运行,并且不会抛出此错误。我相信问题在于使用IFormFile序列化模型,但是我不知道如何解决它。是否可以序列化IformFile类型?