javascript - 如何将 ViewModel 从 MVC Html 传递给 Jquery?
问题描述
我有一个 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; }
}
现在我需要的是当我点击更新按钮时,当前的 foreach 值model.Technician
应该被传递到 jquery 中。目前我正在使用data-id = @item
,但是当我在控制台登录时,这个值只显示 TechnicianInvoiceViewModel 。我的jQuery代码是
$(".updateRate").on("click", function () {
var data = $(this).attr("data-id");
console.log(data);
});
我怎样才能做到这一点?
解决方案
问题在于您想将 C# 模型解析为 Javascript。执行此操作时data-id = @item
,会要求 C# 提供项目的字符串值。但是你期望这个值是多少?身份证?那你应该去data-id = @item.Id
。但是还有很多其他选项,也可以通过实现返回例如 JSON @item.getJSON()
...
长话短说:您需要指定要解析为 JavaScript 的项目的哪个值;)
推荐阅读
- android - Android设备上的ktor websocket安装错误
- javascript - 如何使用 React 和 AXIOS 创建全局 Handler?
- c++ - 返回具有自动返回类型的 std::function
- javascript - 如何在 iframe 中编译 html、css 和 js 代码
- ruby-on-rails - rails 中 has_and_belongs_to_many 关联的问题
- c# - 在 UserControl 的资源与元素的资源中使用 ResourceDictionary
- python - 重新排列 seaborn 计数图 x 轴
- php - 返回响应与回显 - Laravel
- flutter - 下拉小部件,在颤动中按下此下拉菜单时显示详细信息
- python - 如何绘制 dbscan 图