我正在处理我的项目,现在我已经陷入困境。
我有主索引页面,其中包含产品照片。我想按类别名称显示这些产品。
我制作了ProductDisplayViewModel.cs,其中包含:
namespace MyProject.ViewModels
{
public class ProductDisplayViewModel
{
public int Id { get; set; }
public string ProductName { get; set; }
public string ProductDescription { get; set; }
public decimal ProductPrice { get; set; }
public uint ProductQuantity { get; set; }
public int PremiumPoints { get; set; }
}
}
稍后我在我的视图中将类别名称添加到操作链接。
<a href="@Url.Action("Index","Category", new {Name="Pieczywo"})">
<img class="img-responsive" src="~/Content/Images/Mainpage/Categories/pieczywo.jpg" alt="CategoryName">
</a>
接下来,我预备了包含带有参数字符串categoryName的动作索引的CategoryController。
public ActionResult Index(string categoryName)
{
using (var db = new ApplicationDbContext())
{
// pobieranie kategorii po nazwie
var selectedcategory = db.ProductCategories.FirstOrDefault(c => c.Name == categoryName);
var q = db.Products.Where(x => x.Category.Contains(selectedcategory)).Select(r => new ProductDisplayViewModel()
{
Id = r.Id,
ProductName = r.ProductName,
ProductDescription = r.ProductDescription,
ProductPrice = r.PricePerUnit,
//ProductQuantity = r.Quantity
PremiumPoints = r.PremiumPoints
});
return View(q.ToList());
}
return View();
}
稍后在其他视图中我显示结果:
@model IEnumerable<MyProject.ViewModels.ProductDisplayViewModel>
@{
ViewBag.Title = "Products";
}
<h2>Products by category name</h2>
<br />
<div>
<table class="table table-striped table-bordered table-condensed">
<thead>
<tr>
<th>ID</th>
<th>Product name</th>
<th>Product description</th>
<th>Price per unit</th>
<th>Quantity</th>
<th>Premium points</th>
</tr>
</thead>
<tbody>
@foreach (var item in Model)
{
<tr>
<td>@item.Id</td>
<td>@item.ProductName</td>
<td>@item.ProductDescription</td>
<td>@item.ProductPrice</td>
<td>@item.ProductQuantity</td>
<td>@item.PremiumPoints</td>
</tr>
}
</tbody>
</table>
<br /><br /><br />
<br /><br /><br />
</div>
我的产品型号:
public class Product
{
public Product()
{
Category = new List<ProductCategory>();
OrderDetails = new List<OrderDetail>();
Supliers = new List<Suplier>();
}
public int Id { get; set; }
public string ProductName { get; set; } // nazwa produktu
public string ProductDescription { get; set; } // opis produktu
public string ProductImageUrl { get; set; } // url do obrazka produktu
public ICollection<ProductCategory> Category { get; set; } // kategorie produktu
public decimal PricePerUnit { get; set; } // cena jednostkowa
public int PremiumPoints { get; set; } // punkty zniżki za każdy zakupiony produkt
public uint Quantity { get; set; } // ilość na stanie
public NutritionalValue NutritionalValues { get; set; } // wartości odżywcze
public virtual ICollection<Suplier> Supliers { get; set; } // dostawcy produktu
public virtual ICollection<OrderDetail> OrderDetails { get; set; }
}
我的问题是,当我尝试按类别名称显示我的产品时,我收到错误:
LINQ to中不支持指定的类型成员“Quantity” 实体。仅初始化程序,实体成员和实体导航 支持属性。
当我的动作尝试将q.ToList()传递给我的View()
时,就会发生这种情况这个数量的问题。我认为我的应用程序可能找不到这个类别?怎么解决这个问题?
我不知道如何处理这个问题。请帮帮我:/