ASP.NET Core 中的 TagHelper 不更新值

TagHelper in ASP.NET Core doesn't update values

当我点击 link 保存订单时,我希望网站被重定向到 .../saveOrders?trans=[selected value]&quant=[selected value] 相反,网站总是重定向到 .../saveOrders?quant= 无论我为参数输入哪个值。

我正在使用 MVC 和 TagHelpers:

这是图片视图的片段:

<div class="col-md-3">
    <form asp-action="CreateOrder">
        <div class="form-group">
            <label asp-for="TransactionType"class="control-label">Transaction Type</label>
            <select asp-for="TransactionType" class="form-control">
                <option value="">Select Transaction Type</option>
                <option value="B">BUY</option>
                <option value="BD">BUY DURCHLIEFERUNG/UMLEGUNG</option>
                <option value="S">SELL</option>
                <option value="SD">SELL DURCHLIEFERUNG/UMLEGUNG</option>
            </select>
            <span asp-validation-for="TransactionType" class="text-danger"></span>
        </div>
    </form>
</div>
@*Eingabe*@
<div class="col-md-3">
    <form asp-action="CreateOrder">
        <div class="form-group">
            <label asp-for="Quantity" class="control-label">Quantity</label>
            <input asp-for="Quantity" class="form-control" />
            <span asp-validation-for="Quantity" class="text-danger"></span>
        </div>
    </form>
</div>

<div>
<a href="javascript:void(0);" onclick="history.go(-1);">Back to List</a>
<a asp-controller="Order" asp-action="saveOrders" asp-route-transaction="@Model.TransactionType" asp-route-quant="@Model.Quantity" >Save Order</a>

这是我的模型:

public class CreateOrderModel
{
    public CreateOrderResponse1 CreateOrderResponse1 { get; set; }
    public SaveOrderResponse1 SaveOrderResponse1 { get; set; }
    public bool Save { get; set; }
    public long InstrumentId { get; set; }
    public string instName { get; set; }
    public string securCode { get; set; }
    public string currency { get; set; }
    public long Exchange { get; set; }
    public double Price { get; set; }
    [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy-MM-dd}")]
    [DataType(DataType.Date)]
    public DateTime quoteDate { get; set; }
    public double nominal { get;set; }
    public long code { get; set; }
    public string pName { get; set; }
    [Required]
    public string TransactionType { get; set; }
    [Required]
    public double Quantity { get; set; }

    public string strategyCode { get; set; }

    
    
    public string LastAction { get; set; }
   
    
  
    public string comment { get; set; }

这里是我试图通过点击 saveOrder 来调用的控制器 saveOrders。

public async Task<IActionResult> saveOrders(string transaction, double quant)
    {
        saveOrder.TransactionType = transaction;
        saveOrder.Quantity = quant;
        saveOrder.Save = true;
        await saveOrder.OnCreateOrder();
        return View(saveOrder);
    }

当我从视图调用控制器函数 SaveOrders 时,参数 null0 被传递用于交易和量化,无论我 select。

你用了两个表单,但是每个表单都没有提交按钮。您可以尝试添加javascript来编辑保存订单的url。

这是一个例子。当点击 Save Order 时,编辑它的 href.

<a onclick="save()" id="saveorder" asp-controller="Order" asp-action="saveOrders" asp-route-transaction="@Model.TransactionType" asp-route-quant="@Model.Quantity">Save Order</a>

@section Scripts{ 
<script>
    function save() {
        var transaction = document.getElementById('TransactionType').value
        var quant = document.getElementById('Quantity').value
        console.log(transaction, quant)
        document.getElementById('saveorder').href = '/Order/saveOrders?transaction=' + transaction + '&quant=' + quant
    }
</script>
}

那我select.

在这个动作中得到它。