2012-08-11 39 views
1

在我的Razor标记中,我循环访问模型集合并输出表格行。目前,我在每个表行的“data-id”属性中存储项目标识。我需要每行存储整个对象,所以它会为我节省一些未来的Ajax调用。将Razor输出中的每行完整对象存储为我的jQuery稍后使用的好方法是什么?如何在Razor中存储jQuery/data属性中的复杂对象?

回答

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> 
} 
+0

+1淘汰赛 – 2012-08-11 20:42:11

+0

-1,用户显然是在利用净MVC ......告诉他们使用knockout.js是愚蠢的,是没有意义的。他们需要解决这个问题。你建议他们改变他们的整个架构。 – JPeG 2017-06-05 20:18:04

1

你也可以使用具有编码的JSON字符串的隐藏字段,那么你就可以解析JSON上在您的JavaScript代码中的需求。根据您的要求有每行的隐藏字段..

@foreach(var item in Model.Whatever) { 
<tr data-id="@item.Id"> ... etc </tr> 
<input type="hidden" val="@Json(model)" /> 
} 
相关问题