使用编辑器模板时获取控件的ID

时间:2013-12-29 20:54:07

标签: jquery asp.net-mvc asp.net-mvc-4

直到现在我有了一个视图和一个控制器。在我看来,当我在脚本中需要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);
        }
    }

0 个答案:

没有答案