You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在CSHTML中让表单外的数量输入框值被表单使用?

解决方案

方法1:通过JavaScript在表单提交时附加数量值

给表单添加ID,监听提交事件,手动把数量输入框的值加入提交数据:

<div class="mb-3">
    <label for="quantity" class="form-label">Quantity:</label>
    <input type="number" id="quantity" class="form-control d-inline-block" style="width: 100px;" min="1" value="1" />
</div>
<div class="d-flex gap-2">
    <form id="add-to-cart-form" method="post" asp-page-handler="AddToCart">
        <input type="hidden" name="productId" value="@Model.Product.Id" />
        <button type="submit" class="btn btn-success">Add to cart</button>
    </form>
    <a href="#" class="btn btn-warning ml-2">Buy now</a>
</div>

<script>
document.getElementById('add-to-cart-form').addEventListener('submit', function(e) {
    const quantityInput = document.createElement('input');
    quantityInput.type = 'hidden';
    quantityInput.name = 'quantity';
    quantityInput.value = document.getElementById('quantity').value;
    this.appendChild(quantityInput);
});
</script>

提交表单时,quantity参数会自动被带上,后端AddToCart处理器可直接接收该值。

方法2:同步数量值到表单内的隐藏字段

在表单中添加隐藏的quantity输入框,监听外部数量框的输入事件,实时同步值:

<div class="mb-3">
    <label for="quantity" class="form-label">Quantity:</label>
    <input type="number" id="quantity" class="form-control d-inline-block" style="width: 100px;" min="1" value="1" />
</div>
<div class="d-flex gap-2">
    <form method="post" asp-page-handler="AddToCart">
        <input type="hidden" name="productId" value="@Model.Product.Id" />
        <input type="hidden" id="form-quantity" name="quantity" value="1" />
        <button type="submit" class="btn btn-success">Add to cart</button>
    </form>
    <a href="#" class="btn btn-warning ml-2">Buy now</a>
</div>

<script>
document.getElementById('quantity').addEventListener('input', function() {
    document.getElementById('form-quantity').value = this.value;
});
</script>

用户修改外部数量框时,表单内的隐藏框会同步更新,提交时自然携带最新数量值。

关于你之前尝试失败的原因

用相同asp-page-handler的表单包裹数量框失效,大概率是因为页面存在多个同handler的表单,导致ASP.NET Core路由匹配冲突;或是表单的method、属性设置有误,引发提交异常。上面两种方法无需调整原有表单结构,可靠性更高。

内容的提问来源于stack exchange,提问作者Quốc Khánh 0031

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 21:42:44