c# - 如何从用户获取输入值,然后发送到 ASP.NET MVC 中的 2 个不同的控制器?
问题描述
我正在创建一个电子商务网站。我想创建 2 个按钮add to cart
,buy now
如下所示:
当我按下add to cart
产品然后添加到购物车并选择数量。我曾经form
这样做如下
@using(Html.BeginForm("add_to_cart","Home",new {productId=Model.id_xe},FormMethod.Post)){
<input type="number" id="quantity" name="quantity" min="1" value="1"/>
<button type="submit">Add to cart</button>
}
当我提交时,add_to_cart
将执行操作,其余的我保证没问题
当我按下按钮时,它只是在控制器中Add to cart
执行操作。我想创建按钮从上面的输入中获取数量,然后显示该购物车的信息add_to_cart
Home
buy now
name=quantity
Add to cart
我想问的主要目的是,是否可以创建buy now
仍然从上面的输入标签中获取价值的按钮,<input type="number" id="quantity" name="quantity" min="1" value="1"/>
然后
Add to cart
显示该购物车的信息
如果你们有任何方法可以帮助我创建buy now
按钮,请告诉我。
解决方案
有一种方法可以确定按下哪个按钮来发布表单。在add_to_cart
操作中,您可以检查。将按钮更改为以下内容:
@using(Html.BeginForm("add_to_cart","Home",new {productId=Model.id_xe},FormMethod.Post)){
<input type="number" id="quantity" name="quantity"/>
<button type="submit" name="addToCart" value="btnAdd">Add to cart</button>
<button type="submit" name="buyNow" value="btnBuy">Buy Now</button>
}
然后在行动中:
public ActionResult add_to_cart(string button)
{
//Add the item to the cart here//
if (button == "addToCart"){
//return ajax or view result as you have now
}
if (button == "buyNow"){
return RedirectToAction(“~/CartControllerName/CartViewActionName”);
}
}
更新:
以上假设您的number
输入字段已正确填充。如果没有,则编写以下代码以根据下拉列表的选择更改动态设置值:
$(document).ready(function () {
$('#qtyDDL').on('change', function () {
var selectedVal = $.trim($("#qtyDDL:selected").text());
$("#quantity").val(selectedVal );
});
});
qtyDDL
是下拉列表的假定 ID。