将选定的按钮值从视图传递到控制器
Passing selected button value from view to controller
我想将选定的按钮值传递给控制器。请参阅下面的代码。
在我的控制器中,我传递了 ProductId,然后我将使用它在我的控制器中设置我的产品值。
控制器:
public ActionResult PlaceOrder(int ProductId, string OrderType)
{
// Do something
}
在我看来,我有一个 foreach 循环,它会创建类似按钮的单选按钮,而且我还有一个 hiddenfor(SelectedProductId)
查看:
<div class="panel panel-primary">
<div class="panel-heading">Panel Name</div>
<div class="panel-body">
<div class="row">
<div class="form-group">
@Html.HiddenFor(m => m.SelectedProductId)
@if (Model.Products != null && Model.Products.Count > 0)
{
<div class="btn-group" data-toggle="buttons">
@foreach (var product in Model.Products)
{
<label class="btn btn-default productButton">
<div class="labelProduct">@Product.Name</div>
<input type="radio" name="ProductGMX" id="@("product" + @product.Id)" autocomplete="off" checked data-id="@product.Id">
</label>
}
</div>
我想在 ActionLink 中传递产品 ID,然后将其传递给控制器,但我不确定如何实现
按钮点击:
@Html.ActionLink("Order with standard delivery", "PlaceOrder", "Standard", new { ProductId = ?, OrderType = "Standard delivery" }, new { area = "Standard" })
@Html.ActionLink("Order with Next day Delivery", "PlaceOrder", "Elevated", new { ProductId = ?, OrderType = "NextDay" }, new { area = "Elevated", })
您需要使用 JavaScript 来更新 ActionLink 的 url 每当产品发生变化时,使用单选按钮中的数据 ID。
或
使用提交按钮而不是 ActionLinks,并将单选按钮上的值设置为产品 ID。您需要在控制器中加入一些逻辑来处理这两个不同的按钮。
那些不是按钮。它们是链接,不参与表单提交。
使用真正的按钮,即 <button></button>
并给它们起个名字。然后您可以通过检查 Request
对象来查看点击了哪个对象:
<button name="_StandardDelivery">Order with standard delivery</button>
那么在你的行动中:
if (Request["_StandardDelivery"] != null) {
// user chose standard delivery
}
我想将选定的按钮值传递给控制器。请参阅下面的代码。
在我的控制器中,我传递了 ProductId,然后我将使用它在我的控制器中设置我的产品值。
控制器:
public ActionResult PlaceOrder(int ProductId, string OrderType)
{
// Do something
}
在我看来,我有一个 foreach 循环,它会创建类似按钮的单选按钮,而且我还有一个 hiddenfor(SelectedProductId)
查看:
<div class="panel panel-primary">
<div class="panel-heading">Panel Name</div>
<div class="panel-body">
<div class="row">
<div class="form-group">
@Html.HiddenFor(m => m.SelectedProductId)
@if (Model.Products != null && Model.Products.Count > 0)
{
<div class="btn-group" data-toggle="buttons">
@foreach (var product in Model.Products)
{
<label class="btn btn-default productButton">
<div class="labelProduct">@Product.Name</div>
<input type="radio" name="ProductGMX" id="@("product" + @product.Id)" autocomplete="off" checked data-id="@product.Id">
</label>
}
</div>
我想在 ActionLink 中传递产品 ID,然后将其传递给控制器,但我不确定如何实现
按钮点击:
@Html.ActionLink("Order with standard delivery", "PlaceOrder", "Standard", new { ProductId = ?, OrderType = "Standard delivery" }, new { area = "Standard" })
@Html.ActionLink("Order with Next day Delivery", "PlaceOrder", "Elevated", new { ProductId = ?, OrderType = "NextDay" }, new { area = "Elevated", })
您需要使用 JavaScript 来更新 ActionLink 的 url 每当产品发生变化时,使用单选按钮中的数据 ID。
或
使用提交按钮而不是 ActionLinks,并将单选按钮上的值设置为产品 ID。您需要在控制器中加入一些逻辑来处理这两个不同的按钮。
那些不是按钮。它们是链接,不参与表单提交。
使用真正的按钮,即 <button></button>
并给它们起个名字。然后您可以通过检查 Request
对象来查看点击了哪个对象:
<button name="_StandardDelivery">Order with standard delivery</button>
那么在你的行动中:
if (Request["_StandardDelivery"] != null) {
// user chose standard delivery
}