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
时,参数 null
和 0
被传递用于交易和量化,无论我 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买.
在这个动作中得到它。
当我点击 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
时,参数 null
和 0
被传递用于交易和量化,无论我 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买.
在这个动作中得到它。