我正在开发一个购物车(使用 MVC Asp.Net Core 2.2 和 EF)。
有3个表(模型类):
产品;
尺寸(与产品表相关);
TipoMassa(与 Produto 表相关)。
在 ProductController 类中,我创建了一个存储在 Session 中的列表,以便在 CartController 类中获取此列表。
但是,当我尝试在 CartController 类中获取该列表时,相关表(Tamanho 和 TipoMassa)中的值为空。该列表仅包含 Produto 表值。
我该如何修复它?
public ActionResult AddToCart(IFormCollection collection)
{
string Nome = collection["Nome"];
byte IdTamanho = Convert.ToByte(collection["IdTamanho"]);
byte IdTipoMassa = Convert.ToByte(collection["IdTipoMassa"]);
var produtoContext = _context.Produto
.Include(c => c.IdCategoriaNavigation)
.Include(c => c.IdTamanhoNavigation)
.Include(c => c.IdTipoMassaNavigation)
.FirstOrDefault(p => p.Nome == Nome && p.IdTamanho == IdTamanho
&& p.IdTipoMassa == IdTipoMassa);
if (produtoContext == null)
{
return NotFound();
}
// Add itens na Sesssion
List<Produto> itens = new List<Produto>();
itens = HttpContext.Session.Get<List<Produto>>("itens");
if (itens == null)
{
itens = new List<Produto>();
}
itens.Add(produtoContext);
HttpContext.Session.Set("itens", itens);
TempData["save"] = "Adicionado com sucesso";
return RedirectToAction(nameof(Index), "Produto");
}
工作正常!但在 [CartController] IdCategoriaNavigation、IdTamanhoNavigation 和 IdTipoMassaNavigation 为空。代码如下。
购物车控制器类
public IActionResult Index()
{
List<Produto> itens = HttpContext.Session.Get<List<Produto>>
("itens");
if (itens == null)
{
itens = new List<Produto>();
}
return View(itens.ToList());
}
当我尝试在视图中显示值时,相关表值(IdCategoriaNavigation、IdTamanhoNavigation 和 IdTipoMassaNavigation)为空。代码如下。
产品型号类别
public partial class Produto
{
public Produto()
{
Cardapio = new HashSet<Cardapio>();
ItensPedido = new HashSet<ItensPedido>();
Promocao = new HashSet<Promocao>();
}
繁花如伊
慕标琳琳
相关分类