Warm tip: This article is reproduced from serverfault.com, please click

其他-ASP.NET Core中的TagHelper不会更新值

(其他 - TagHelper in ASP.NET Core doesn't update values)

发布于 2020-12-02 07:37:36

在此处输入图片说明

当我单击链接保存订单时 .../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调用的Controller 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从视图中调用Controller函数时,无论选择什么null0将参数传递给事务和定量。

Questioner
T.Naz
Viewed
11
Karney. 2020-12-02 16:22:24

你使用两种形式,但是每种形式都没有submmit按钮。你可以尝试添加JavaScript来编辑“保存订单”的网址

这是一个例子。当点击保存订单时,编辑其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>
}

然后,我选择

在此处输入图片说明

在此操作中获取它。

在此处输入图片说明