【发布时间】:2020-09-07 00:22:36
【问题描述】:
我正在尝试制作某种购物车,因此我在视图中显示了一个商品列表。
我添加了一个带有“+ Add”值的提交按钮和一个带有显示的每个项目的值金额的数字输入。
这是我的代码:
查看:
@model MyProject.ViewModel.AddProductsViewModel
@{
Layout = null;
}
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<table class="table" align="left" style="padding-left:15px">
<tr>
<th>
Product
</th>
</tr>
@foreach (var item in Model.ProductsList)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.Descripcion)
</td>
<td>
<input type="hidden" name="ProductId" value="@item.ProductId" />
<input type="number" id="Amount" name="Amount"
min="1" max="30" value="1">
<input type="submit" value="+ Add" class="btn btn-primary" />
</td>
</tr>
}
</table>
}
型号:
public class AddProductsViewModel
{
...stuff here...
public List<Products> ProductsList { get; set; }
}
我需要我的控制器从我单击提交到的项目中获取 productId,但这样我只能获取列表中第一项的 Id。 我怎样才能做到这一点?
编辑了我的上下文代码
编辑
感谢所有回复的人。您的回答没有解决问题,但我想我可能提出了错误的问题。我将提供一些背景信息:我试图在 ViewModel 中显示一个产品列表,其中每个产品都有一个添加到购物车按钮和一个输入样式编号(通过使用一个 for each,因为我做了一个产品列表,如我的代码所示),当我单击添加到购物车按钮时,它会将特定项目的信息提供给控制器。
我不知道我是不是做错了。这可能吗?如果有,怎么做?
我的代码的问题是,无论我点击了哪个添加到购物车按钮,它总是只给出列表中第一项的信息。
【问题讨论】:
-
使用
for( int i = 0....循环和Html.HiddenFor模型绑定方法。您不能使用foreach循环。 -
重复 ID 是一个错误。
标签: c# html asp.net-mvc