2012-08-11 33 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)" /> 
} 
相關問題