2011-09-19 38 views
0

我有下一视图:传递价值,操作方法

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

如何量值传递给该操作方法? 谢谢

+0

你导航到该链接,或试图发布形式是链接? – Tejs

+0

动作链接呈现链接到/ Cart/AddToCart并传递GET参数productId和returnUrl时遵循此链接 – xwrs

回答

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

使用@Html.BeginForm将提交所有数据到您的AddToCart行动。还要添加提交表单的链接。

0

使用JavaScript像jQuery:

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