简体   繁体   English

将价值传递给行动方法

[英]Passing value to action method

I have a next view: 我有下一个观点:

<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>

and action method: 和动作方法:

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);
}

How pass quantity value to this action method? 如何将数量值传递给该动作方法? Thanks 谢谢

@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" />    
}

Use @Html.BeginForm that will submit all data to your AddToCart action. 使用@Html.BeginForm将所有数据提交到您的AddToCart操作。 Also add link that will submit form. 还添加将提交表单的链接。

Use javascript like JQuery: 使用像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>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM