Я использую ASP.NET Core 2.2. У меня есть 2 модели и модель представления, которая вводит данные в представление. Я хочу заказать результаты на основе их productType . Давайте проясним
Это Продукт Модель
public class Product
{
public int ProductID { get; set; }
public int ProductName { get; set; }
public string ProductImage { get; set; }
public int ProductTypeID { get; set; }
[ForeignKey("ProductTypeID")]
public virtual ProductType ProductType{ get; set; }
}
Это ProductType модель
public class ProductType
{
public int ProductTypeID { get; set; }
public int ProductTypeName { get; set; }
public string ProductTypeImage { get; set; }
public string ProductTypeDescription { get; set;
}
И, наконец, это DishesViewModel
public class DishesVM
{
public IEnumerable<ProductType> ProductType { get; set; }
public IEnumerable<Product> Product { get; set; }
}
В MyController Я получаю данные из БД, затем с помощью автоматического преобразователя сопоставляю их с DishViewModel
public class HomeController : Controller
{
public IActionResult Dishes()
{
var productTypes= _context.ProductType.OrderBy(p =>p.ProductTypeID).ToList();
var products= _context.Products.OrderBy(p => p.ProductID).ToList();
var DishesVM = new DishesVM();
DishesVM.ProductType = _mapper.Map<IEnumerable<ProductType>>(productTypes);
DishesVM.Product = _mapper.Map<IEnumerable<Product>>(products);
}
}
Теперь в Блюдах Представление, которое я мог вкладывать foreach
@model DishesViewModel
<div>
foreach(var pt in Model.ProductType)
{
<h1>pt.ProductTypeName</h1>
foreach(var p in Model.Product)
{
p.ProductName
}
}
</div>
Это работает нормально, но единственная проблема, которую он имеет, - это возврат всех продуктов. но я хочу, чтобы у каждой категории продуктов были свои продукты перед заголовком. Это наглядное представление о том, что я хочу и что я имею сейчас.
Это что я хочу
![what I want](https://i.stack.imgur.com/Hxpeo.png)
Но это , что у меня
![what I have](https://i.stack.imgur.com/fIkBf.png)