在我的Razor标记中,我循环遍历模型集合并输出表格行。目前,我将项目ID存储在每个表行的“data-id”属性中。我需要每行存储整个对象,所以它将为我节省一些未来的ajax调用。什么是在Razor输出上每行存储完整对象以供我的jQuery稍后使用的好方法?
答案 0 :(得分:1)
您还可以使用具有编码的json String的隐藏字段,然后您可以在javascript代码中按需解析jSon。根据您的要求,每行都有一个隐藏字段。
@foreach(var item in Model.Whatever) {
<tr data-id="@item.Id"> ... etc </tr>
<input type="hidden" val="@Json(model)" />
}
答案 1 :(得分:0)
您是否考虑使用Knockout.js或任何其他基于模型的模板Javascript语言(有很多,包括Backbone,Angular等)?您可以简单地将整个模型绑定到Javascript(将其序列化为JSON)。然后,您可以使用模板生成表。这是我能给你的最佳建议。
如果你想要快速/黑客的方式,你总是可以这样做:
<script>
var dataMap = {};
</script>
@foreach(var item in Model.Whatever) {
<tr data-id="@item.Id"> ... etc </tr>
<script>
dataMap['@item.Id'] = @Json(item); // you'd have to make a Html helper to do this
</script>
}