0

我通过为每个产品构建动态构建了一个“购买产品”页面。每个产品都有一个“添加到购物篮”按钮,每个产品pID的按钮name属性是不同的。我现在想name在回发时在我的控制器中获取属性的值。不知道该怎么做:

看法:

@foreach (Ecommerce.Models.HomeModels.Product product in Model)
{
    using (Html.BeginForm())
    {
        @Html.Label(product.Name);
        <br />
        @Html.Label(product.Description);
        <br />
        @Html.Label(product.UnitPrice.ToString());
        <p></p>


        <input name="@product.ID" type="submit" value="Add to Basket" /> 
    }
}

控制器:

[HttpPost]
        [AllowAnonymous]
        [ValidateAntiForgeryToken]
        public ActionResult BuyProducts(string button)
        {

        }
4

1 回答 1

1

如果表单中没有多个提交按钮,则无需在服务器端知道单击的提交按钮的名称是什么。还有其他方法可以将您的 ID 发送回服务器:

为什么不在表单中生成一个隐藏字段来保存和发布数据?

@foreach (Ecommerce.Models.HomeModels.Product product in Model)
{
    using (Html.BeginForm())
    {
        <input type="hidden" name="productId" value="@product.ID" />
        <input  type="submit" value="Add to Basket" /> 
    }
}

然后你可以在你的控制器中获取隐藏字段的值:

public ActionResult BuyProducts(string productId)
{
    //..
}
于 2013-01-16T16:41:36.560 回答