我想按类别显示产品列表。 我第一次访问该网站时,会显示一个类别URL列表。如果你点击一个URL,我会喜欢 获取与此类别相关的所有产品。 我构建它时,我的HomeController基于类别。 当我在浏览浏览器时,我为该模型选择了Categorie。我不确定它是不是好的。我也尝试使用该产品,它也没有工作。 有人可以解释我应该做些什么来生成正确的解决方案? 感谢
目前我收到此错误: 传递到字典中的模型项的类型为'System.Collections.Generic.List`1 [MVCWebStore.Models.Produit]',但此字典需要类型为“MVCWebStore.Models.Categorie”的模型项。
这是HomeController.cs(基于Produit的构建)
namespace MVCWebStore.Controllers
{
public class HomeController : Controller
{
private MVCWebStoreDdEntities1 db = new MVCWebStoreDdEntities1();
public ActionResult Browse(int id = 0)
{
var categorieProduitToEdit = (from c in db.Produits where c.IdCategorie == id select c);
if (categorieProduitToEdit == null)
{
return HttpNotFound();
}
return View(categorieProduitToEdit.ToList());
}
这是Browse.cshtml
@model MVCWebStore.Models.Categorie
@{
ViewBag.Title = "Browse";
}
<ul>
@foreach (var produit in Model.Produits)
{
<li>
@produit.Description
</li>
}
</ul>
Produit.cs
namespace MVCWebStore.Models
{
using System;
using System.Collections.Generic;
public partial class Produit
{
public Produit()
{
this.ItemPaniers = new HashSet<ItemPanier>();
}
public int IdProduit { get; set; }
public int IdCategorie { get; set; }
public string NomProduit { get; set; }
public string Description { get; set; }
public double Prix { get; set; }
public int Quantite { get; set; }
public virtual Categorie Categorie { get; set; }
public virtual ICollection<ItemPanier> ItemPaniers { get; set; }
}
}
Categorie.cs
namespace MVCWebStore.Models
{
using System;
using System.Collections.Generic;
public partial class Categorie
{
public Categorie()
{
this.Produits = new HashSet<Produit>();
}
public int IdCategorie { get; set; }
public string NomCategorie { get; set; }
public virtual ICollection<Produit> Produits { get; set; }
}
}
答案 0 :(得分:0)
错误会告诉您视图的期望。目前它正在期待一个项目,但是你传递了一系列项目。
将一个带有模型集合的分类模型传递给模型
public class HomeController : Controller
{ private MVCWebStoreDdEntities1 db = new MVCWebStoreDdEntities1();
public ActionResult Browse(int id = 0)
{
//GET THE CATEGORIE
var Categorie = //GET THE CATEGORIE FROM THE DATABASE
var categorieProduitToEdit = (from c in db.Produits where c.IdCategorie == id select c);
if (categorieProduitToEdit == null)
{
return HttpNotFound();
}
//BUILD THE MODEL
Categorie.produits = categorieProduitToEdit.ToList();
return View(Categorie);
}