【问题标题】:How to Pass ViewModel from MVC Html to Jquery?如何将 ViewModel 从 MVC Html 传递给 Jquery?
【发布时间】:2021-01-04 06:34:17
【问题描述】:

我有一个 cshtml 文件,它使用来自控制器的模型值的每个循环。我的 cshtml 代码如下:-


<tbody>
                                @foreach (var item model.TechnicianInvoice)
                                {
                                    <tr>
                                        <td>@item.Name</td>
                                        @foreach (var rate in item.Rates)
                                        {
                                            <td class="td10"><span class="prefix">$</span><input  type="text" class="form-control my-input" value="@rate.Rate.ToString("0.00")"></td>
                                        }
                                        <td><a class="btn btn-sm" href="#" data-action="ShowPayTableModal" data-id="@item.Id" name="@item.Name">view</a></td>
                                        <td><a class="updateRate" data-id="@item">update</a></td>
                                    </tr>
                                }
</tbody>

model.TechnicianInvoice 是一个视图模型:

public class TechnicianInvoiceViewModel
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public List<TechRateViewModel> Rates { get; set; }
    }
    public class TechRateViewModel
    {
        public int Id { get; set; }
        public double Rate { get; set; }
    }

现在我需要的是,当我单击更新按钮时,model.Technician 的当前 foreach 值应该传递到 jquery。目前我使用的是data-id = @item,但是当我在控制台登录时,这个值只显示 TechnicianInvoiceViewModel 。我的 jquery 代码是

 $(".updateRate").on("click", function () {
                var data = $(this).attr("data-id");
                console.log(data);
});

我该怎么做?

【问题讨论】:

    标签: javascript jquery asp.net-mvc razor


    【解决方案1】:

    问题在于您想将 C# 模型解析为 Javascript。 当您执行data-id = @item 时,会要求 C# 提供项目的字符串值。但是你期望这个值是多少?身份证?那你应该去data-id = @item.Id。但是还有很多其他选项,也可以通过实现 @item.getJSON() 来返回例如 JSON ...

    长话短说:您需要指定要解析为 JavaScript 的项目的哪个值;)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-14
      • 2011-01-22
      • 1970-01-01
      相关资源
      最近更新 更多