我在我的 webbapplication 上使用带有实体框架的 MVC3 Viewmodel 模式。
我的索引视图是带有图像、价格和描述等的产品列表。
带有我上面提到的信息的产品位于带有“购买”按钮的 div 框中。
我将使用 2 个视图,一个是显示所有产品的索引视图,另一个是显示购买按钮单击的产品的视图。
我想要实现的是,当用户单击购买按钮时,产品应该存储在另一个视图中,即购物车视图并显示出来。
我对如何开始该部分的编码有疑问。
产品的索引视图已经完成,现在它的购买按钮功能还剩下要做,但我不知道如何开始。
这是我的索引控制器:
private readonly HomeRepository repository = new HomeRepository();
public ActionResult Index()
{
var Productlist = repository.GetAllProducts();
var model = new HomeIndexViewModel()
{
Productlist = new List<ProductsViewModel>()
};
foreach (var Product in Productlist)
{
FillProductToModel(model, Product);
}
return View(model);
}
private void FillProductToModel(HomeIndexViewModel model, ProductImages productimage)
{
var productViewModel = new ProductsViewModel
{
Description = productimage.Products.Description,
ProductId = productimage.Products.Id,
price = productimage.Products.Price,
Name = productimage.Products.Name,
Image = productimage.ImageUrl,
};
model.Productlist.Add(productViewModel);
}
在我的 ActionResult 索引中,我使用我的存储库来获取产品,然后我将产品中的数据绑定到我的 ViewModel,以便我可以在我的视图中使用 ViewModel。这就是我在视图中显示所有产品的方式。
这是我的索引视图:
@model Avan.ViewModels.HomeIndexViewModel
@foreach (var item in Model.Productlist)
{
<div id="productholder@(item.ProductId)" class="productholder">
<img src="@Html.DisplayFor(modelItem => item.Image)" alt="" />
<div class="productinfo">
<h2>@Html.DisplayFor(modelItem => item.Name)</h2>
<p>@Html.DisplayFor(modelItem => item.Description)</p>
@Html.Hidden("ProductId", item.ProductId, new { @id = "ProductId" })
</div>
<div class="productprice">
<h2>@Html.DisplayFor(modelItem => item.price)</h2>
<input type="button" value="Läs mer" class="button" id="button@(item.ProductId)">
@Html.ActionLink("x", "Cart", new { id = item.ProductId }) // <- temp its going to be a button
</div>
</div>
}
由于我可以获取每个产品的产品 ID,因此我可以使用控制器中的 ID 从数据库中获取数据。但是我仍然不知道该怎么做,所以当有人点击购买按钮时,我将 ID 存储在哪里?以及如何使用它才能实现我想做的事情?
现在我一直在尝试在我的 IndexController 中做以下事情:
public ActionResult cart(int id)
{
var SelectedProducts = repository.GetProductByID(id);
return View();
}
我在这里所做的是通过 id 获取产品。因此,当有人按下 temp "x" Actionlink 时,我会收到产品。我所知道的是,需要类似的东西来实现我想要做的事情,但在那之后我不知道该做什么以及我应该以什么样的结构去做。
非常感谢任何形式的帮助!
短场景:
查看索引我看到 5 种产品,我选择购买 3 种产品,所以我点击了三个“购买”按钮。现在我单击导航菜单上的“购物车”。新视图弹出,我看到了我点击购买的三个产品。