将值传递给动作方法
本文关键字:方法 值传 | 更新日期: 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>