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

Jquery 使用编辑器模板时获取控件ID,jquery,asp.net-mvc,asp.net-mvc-4,Jquery,Asp.net Mvc,Asp.net Mvc 4,到现在为止,我已经有了一个视图和一个控制器。在我看来,当我需要脚本中的ID时,我使用了Html.IdFor 但是,添加编辑器模板后,Html.IdFor显然不起作用 所以我的问题是:当使用编辑器模板时,引用控件的最佳方式是什么?我可以添加一个唯一的类或给它一些模糊的ID,但与Html.IdFor解决方案相比,它感觉不是很通用 查看脚本: <script> $(document).ready(function () { $('#doHaveAddress').c

到现在为止,我已经有了一个视图和一个控制器。在我看来,当我需要脚本中的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>

您的EditorTemplate代码是什么样子的,以及如何调用您的EditorTemplate?输入字段中的第二个代码段是EditorTemplate,我通过生成UIHint来调用它,如在视图模型中所示,它应该仍然在编辑器模板中工作。@AntP它不工作。IdFor给出了PurchaseViewModel\u PurchaseAmount之类的值。如果我没有在编辑器模板中添加ID,则没有ID。如果我提供静态ID,IdFor不会获取它
<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);
        }
    }