将值传递给动作方法

本文关键字:方法 值传 | 更新日期: 2023-09-27 18:09:06

我有一个下一个视图:

<form class="actionButtons">
   <input type="number" id="Quantity" name="Quantity" min="1" max="99" value="1" style="width:35px;"/>
   @Html.ActionLink("+ Add to cart", "AddToCart", "Cart", new { productId = Model.ProductID, returnUrl = Request.Url.PathAndQuery }, null)
</form>

和动作方法:

public RedirectResult AddToCart(Cart cart,int productId, string returnUrl)
{
   Product product = repository.Products.FirstOrDefault(p => p.ProductID == productId);
   if (product != null) cart.AddItem(product, 1);
   return Redirect(returnUrl);
}

如何将数量值传递给这个动作方法?由于

将值传递给动作方法

@using (Html.BeginForm("AddToCart", "Cart", new { productId = Model.ProductID, returnUrl = Request.Url.PathAndQuery }))
{
    <input type="number" id="Quantity" name="Quantity" min="1" max="99" value="1" style="width:35px;"/>
    <input type="submit" value="+ Add to cart" />    
}

使用将所有数据提交给AddToCart操作的@Html.BeginForm。也添加链接,将提交表单。

使用类似JQuery的javascript:

 <script type="text/javascript">
    $(function() {
       var $qty = $("#Quantity");
       var $form = $qty.closest("form");
       var $link = $form.find("a");
       $link.click(function(e) {
         var $this = $(this);
         $this.attr("href", $this.attr("href") + "&qty=" $qty.val());
       });
    });
 </script>