将值从表单传递到新操作

时间:2011-10-20 11:14:00

标签: forms asp.net-mvc-3 controller action

好的我有一个问题,如果这是我的表格,并且是为数据库中的每个项目生成的,我想发送具有指定数量的项目。

从此剃须刀视图中发送数量

@using (Html.BeginForm("AddToCart", "Prices"))   {    string qtname = "qt" + @item.id;     <div> <input id="@qtname" name="@qtname" class="quantity" type="text" value="0" readonly="readonly" />

</div> 
<input type="submit" value="Adauga" class="addToCart" />`

}

我只需要这些吗?

[HttpPost] public ActionResult AddToCart(ProductsModel Products, string qtname) { } 我是否需要一些html.hidden来传递item.id呢?

1 个答案:

答案 0 :(得分:0)

在表单中,您只发送qtname参数作为输入字段,而您的控制器操作还需要一个永不发送的ProductsModel参数。如果要绑定它,则必须为此视图模型的所有属性创建输入字段。

但在您的情况下,更好的解决方案是将产品的id简单地包含在隐藏字段中,然后根据此ID从您的数据存储区中获取相应的产品:

[HttpPost] 
public ActionResult AddToCart(string id, string qtname) 
{ 
    ProductsModel products = _repository.GetProduct(id);
    ...
}