ActionLink 将来自不同 table 单元格的输入值传递给控制器方法
ActionLink to pass a input value from a different table cell to controller method
我在 MVC 工作。
我有一个 table 有一堆行。一个单元格包含一个 'Order' 按钮,另一个单元格包含一个数字输入,用户可以在其中指定他想要购买的商品的数量?如何从输入单元格传递我的 ActionLink 中的数量值?这里的问题不在于查找文本值,而是查找特定行的文本值
Table 单元格
<td><input id="itemQuantity" type="number" value="1" min="1" max="@item.QuantityInStock" size="10" class="universalWidth"/></td>
<td>@Html.ActionLink("Order", "OrderTuckShop", new { id = item.IngredientId, quanity = ???}, new { @class = "btn btn-success universalWidth" })</td>
方法调用
public ActionResult OrderTuckShop(Guid? id, int quantity)
您不能在您的 ActionLink()
方法中添加文本框的值,因为它是剃须刀代码,并且在发送到客户端之前在服务器上进行了解析。为了响应客户端事件,您需要使用 javascript/jquery.
创建手册 link 并将 IngredientId
添加为 data-
属性并添加一个额外的 class 名称以用作选择器
<td>
<a href="#" data-id="@item.IngredientId" class="order btn btn-success universalWidth">Order</a>
</td>
另外,去掉input中的id="itemQuantity"
(重复的id
属性无效html),添加一个class名字作为选择器
<input class="quantity" type="number" ... />
然后包含以下脚本以读取输入值并进行重定向
var baseUrl = '@Url.Action("OrderTuckShop")';
$('.order).click(function() {
var id = $(this).data('id');
var quantity = $(this).closest('tr').find('.quantity').val();
location.href = baseUrl + '?id=' + id + '&quanity=' + quanity;
});
但是,该方法的名称表明您可能应该创建 POST,而不是 GET?
我在 MVC 工作。 我有一个 table 有一堆行。一个单元格包含一个 'Order' 按钮,另一个单元格包含一个数字输入,用户可以在其中指定他想要购买的商品的数量?如何从输入单元格传递我的 ActionLink 中的数量值?这里的问题不在于查找文本值,而是查找特定行的文本值
Table 单元格
<td><input id="itemQuantity" type="number" value="1" min="1" max="@item.QuantityInStock" size="10" class="universalWidth"/></td>
<td>@Html.ActionLink("Order", "OrderTuckShop", new { id = item.IngredientId, quanity = ???}, new { @class = "btn btn-success universalWidth" })</td>
方法调用
public ActionResult OrderTuckShop(Guid? id, int quantity)
您不能在您的 ActionLink()
方法中添加文本框的值,因为它是剃须刀代码,并且在发送到客户端之前在服务器上进行了解析。为了响应客户端事件,您需要使用 javascript/jquery.
创建手册 link 并将 IngredientId
添加为 data-
属性并添加一个额外的 class 名称以用作选择器
<td>
<a href="#" data-id="@item.IngredientId" class="order btn btn-success universalWidth">Order</a>
</td>
另外,去掉input中的id="itemQuantity"
(重复的id
属性无效html),添加一个class名字作为选择器
<input class="quantity" type="number" ... />
然后包含以下脚本以读取输入值并进行重定向
var baseUrl = '@Url.Action("OrderTuckShop")';
$('.order).click(function() {
var id = $(this).data('id');
var quantity = $(this).closest('tr').find('.quantity').val();
location.href = baseUrl + '?id=' + id + '&quanity=' + quanity;
});
但是,该方法的名称表明您可能应该创建 POST,而不是 GET?