我目前有一个这样的视图:

@using (Html.BeginForm("Compare", "Carousel", FormMethod.Post))
{
@foreach (var product in Model.Products)
{
        <tr>
             <td>@product.Provider.Name</td>
             <td>&pound;@Math.Round(product.MonthlyPremium, 2, MidpointRounding.AwayFromZero)</td>
             <td>@Html.ActionLink("More Details", "MoreDetails", new { id = product.ProductId })</td>
             <td><button name="compare" value="@product.ProductId">Compare</button</td>
        </tr>
}
}


控制器:

[HttpPost]
public ActionResult Compare(ProductsWithDetailModel model) // This is a guess, Model may not persist?
 {
       // Code here

       return View("Index", model);
 }


我真正想要的是,当单击一个按钮时,将调用Controller,并将已选择的产品(单击的按钮)添加到项目列表中。

我实际上如何找出在Controller中单击了哪个按钮?我怎么会找不到网上以前做过的任何教程,肯定是它的基本功能?还是我处理错误?

最佳答案

ASP.NET MVC接受所有输入并将其通过动词发送给操作。这些控件的绑定由View上的name属性完成,其值取决于我们在说什么控件(文本,复选框,单选,选择,按钮等)。您可以在ProductsWithDetailModel上拥有一个名为compare的属性,它将接收您单击的按钮的值。

10-07 19:42
查看更多