如何解决将列表中每个项目的值提交给控制器MVC
我正在尝试制作某种购物车,所以我在视图中显示项目列表。
我为每个显示的项目添加了一个提交按钮,其值为“ +添加”,并输入了一个数字,其值为金额。
这是我的代码:
查看:
@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。我该如何实现?
解决方法
@{int i = 0;}
@foreach (var item in Model.ProductsList)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.Descripcion)
</td>
<td>
<input type="hidden" name="ProductsList[@i].ProductId" value="@item.ProductId" />
<input type="number" id="Amount" name="ProductsList[@i].Amount"
min="1" max="30" value="1">
<input type="submit" value="+ Add" class="btn btn-primary" />
</td>
</tr>
@(i++)
}
,
只需在循环中开始如下形式即可解决问题:
@model MyProject.ViewModel.AddProductsViewModel
@{
Layout = null;
}
@Html.AntiForgeryToken()
<table class="table" align="left" style="padding-left:15px">
<tr>
<th>
Product
</th>
</tr>
@foreach (var item in Model.ProductsList)
{
using (Html.BeginForm())
{
<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>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。