直到现在我有了一个视图和一个控制器。在我看来,当我在脚本中需要ID时,我使用了Html.IdFor
。
但是,添加编辑器模板后,Html.IdFor不起作用(显然)。
所以我的问题:使用编辑器模板时引用控件的最佳方法是什么?我可以添加一个独特的类或给它一些不起眼的ID,但与Html.IdFor解决方案相比,它感觉不是很通用。
查看脚本:
<script>
$(document).ready(function () {
$('#doHaveAddress').change(function () {
$('#plcBitcoinAddress').toggle();
});
$('#@Html.IdFor(m => m.PurchaseViewModel.PurchaseAmount)').keyup(function () {
updateSummary();
});
//$('#submitBtn').click(function() {
// window.location.href = "/en/orders/25892e17-80f6-415f-9c65-7395632f0223";
//});
updateSummary();
});
function updateSummary() {
var purchaseAmount = $('#@Html.IdFor(m => m.PurchaseViewModel.PurchaseAmount)').val();
var bitcoinRate = '@Helper.GetBitcoinCurrencyRate(Currency.dkk)';
// set amount
$('#summary_purchaseamount').text(purchaseAmount);
// set fee
var fee = (('@Helper.SiteFee()') / 100) * purchaseAmount;
$('#summary_fee').text(fee.toFixed(2));
// set payout
var payout = ((purchaseAmount - fee) / bitcoinRate);
$('#summary_payout').text(payout.toFixed(4));
}
</script>
但是,我刚刚添加了一个编辑器模板,因为我需要扩展原始输入字段:
<input type="text" class="form-control" style="max-width:200px;" value="@ModelRes.BuyBitcoinStrings.Purchase_Default_Amount" />
查看模型:
public class PurchaseViewModel
{
public string BitcoinAddress { get; set; }
[UIHint("InputGroupBox")]
public int PurchaseAmount { get; set; }
public string CurrencyChosen { get; set; }
public bool Accept { get; set; }
public PurchaseViewModel()
{
PurchaseAmount = int.Parse(ModelRes.BuyBitcoinStrings.Purchase_Default_Amount);
}
}