Javascript 如何将ViewModel从MVC Html传递到Jquery?
我有一个cshtml文件,该文件用于来自控制器的模型值的每个循环。我的cshtml代码如下:-Javascript 如何将ViewModel从MVC Html传递到Jquery?,javascript,jquery,asp.net-mvc,razor,Javascript,Jquery,Asp.net Mvc,Razor,我有一个cshtml文件,该文件用于来自控制器的模型值的每个循环。我的cshtml代码如下:- <tbody> @foreach (var item model.TechnicianInvoice) { <tr>
<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.technology的当前foreach值应该被传递到jquery中。目前我使用的是数据id=@item
,但当我在控制台上记录时,该值仅显示TechnicianInvoiceViewModel。我的jquery代码是
$(".updateRate").on("click", function () {
var data = $(this).attr("data-id");
console.log(data);
});
我该怎么做呢?问题在于,您需要将C#模型解析为Javascript。
当您执行data id=@item
时,会要求C#输入该项的字符串值。但是你期望这个值是什么呢?身份证?然后你应该选择数据id=@item.id
。但是还有很多其他选项,例如,也可以通过实现@item.getJSON()
返回JSON
长话短说:您需要指定要将项目的哪个值解析为JavaScript;)
public class TechRateViewModel
{
public int Id { get; set; }
public double Rate { get; set; }
}
$(".updateRate").on("click", function () {
var data = $(this).attr("data-id");
console.log(data);
});