C# 两个查询,一个视图 目标
在单个视图中的两个查询之间迭代 问题 在我的应用程序中,有一个特定产品的比较列表。在页面顶部,有该产品的详细信息,如名称、最低/最高价格、照片和其他一些详细信息 我需要的是这样的东西:C# 两个查询,一个视图 目标,c#,asp.net-mvc,asp.net-mvc-4,razor,C#,Asp.net Mvc,Asp.net Mvc 4,Razor,在单个视图中的两个查询之间迭代 问题 在我的应用程序中,有一个特定产品的比较列表。在页面顶部,有该产品的详细信息,如名称、最低/最高价格、照片和其他一些详细信息 我需要的是这样的东西: @modelComparisonList List<MyApp.Models.Products> @modelProduct MyApp.Models.Products @{ ViewBag.Title = "Comparing " + modelProduct.name; } <h
@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 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>
@modelcomparaisonlist列表
@modelProduct MyApp.Models.Products
@{
ViewBag.Title=“Comparing”+modelProduct.name;
}
有@modelProduct.quantity产品可供比较
@foreach(modelComparisonList中的变量项)
{
@item.productName
@产品价格
@item.marketName
}
你能理解我的情况吗
我不知道如何执行解决方案来解决此问题。有人能给我一个主意吗?只需创建一个包含这两者的包装器类,即:
public class TheViewModel
{
public List<MyApp.Models.Products> Item1 { get; set; }
public MyApp.Models.Products Item2 { get; set; }
}
public类视图模型
{
公共列表项1{get;set;}
公共MyApp.Models.Products项2{get;set;}
}
是的,您可以通过使用视图模型来完成。视图模型用于表示视图上的数据。视图模型可以是多个模型的“串联”
下面是一些关于类和属性的提示
您的产品域模型如下所示:
@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 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>
您的视图模型可能如下所示:
@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 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>
你的观点可能是这样的:
@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 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>
@model YourProject.ViewModels.Products.ProductViewModel
@{
ViewBag.Title=“比较”+@Model.Product.Name;
}
有@Model.Product.Quantity产品可供比较
@foreach(模型产品中的var产品)
{
@产品名称
@产品价格
@产品名称
}
我希望这有帮助。侧记:将你的<代码>产品< /Cord>类改名为<代码>产品<代码> 1。标题SOfanatic只是一个例子,但是谢谢你的提示。在将来我会考虑它。@勒南,你是一个生病的小狗;太神了简单明了的回答。谢谢这正是我所做的,布伦丹。顺便说一句,谢谢你的贡献!