[英]Two queries, one view
在单个视图中的两个查询之间进行迭代。
在我的应用程序中,有一个特定产品的比较列表。 在页面顶部,有该产品的详细信息,如名称,最低/最高价格,照片和其他一些细节。
我需要的是这样的:
@modelComparisonList List<MyApp.Models.Products>
@modelProduct MyApp.Models.Products
@{
ViewBag.Title = "Comparing " + modelProduct.name;
}
<h1>There is @modelProduct.quantity products to compare</h1>
<table>
@foreach (var item in modelComparisonList)
{
<tr>
<p>@item.productName</p>
</tr>
<tr>
<p>@item.productPrice</p>
</tr>
<tr>
<p>@item.marketName</p>
</tr>
}
</table>
你能理解我的情况吗?
我不知道如何执行解决方案来解决这个问题。 有人可以给我一个想法吗?
只需创建一个包含两者的包装类,即:
public class TheViewModel
{
public List<MyApp.Models.Products> Item1 { get; set; }
public MyApp.Models.Products Item2 { get; set; }
}
是的,您可以使用视图模型来完成。 视图模型用于表示视图上的数据。 您的视图模型可以是来自多个模型的“连接”。
以下是关于您的类和属性的一些提示。
您的产品域模型如下所示:
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public string MarketName { get; set; }
public decimal Price { get; set; }
// Other properties not mentioned above
}
您的视图模型可能如下所示:
public class ProductViewModel
{
public IEnumerable<Product> Products { get; set; }
public Product Product { get; set; }
}
您的操作方法可能如下所示:
public ActionResult Compare(int id)
{
ProductViewModel viewModel = new ProductViewModel
{
Product = productRepository.GetBuId(id),
Products = productRepository.GetAll()
};
return View(viewModel);
}
你的观点看起来像这样:
@model YourProject.ViewModels.Products.ProductViewModel
@{
ViewBag.Title = "Comparing " + @Model.Product.Name;
}
<h1>There is @Model.Product.Quantity products to compare</h1>
<table>
@foreach (var product in Model.Products)
{
<tr>
<td>@product.Name</td>
</tr>
<tr>
<td>@product.Price</td>
</tr>
<tr>
<td>@product.MarketName</td>
</tr>
}
</table>
我希望这有帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.