【发布时间】:2013-10-14 00:28:52
【问题描述】:
问题定义:
我有一个 ExpandoObject,我需要将其转换为“客户”类型之类的类型,但问题没有实现,我想知道我应该使用 javascript 接近服务器端还是客户端,我可以通过两种方式实现我想要的但哪个更有效,更省时?
服务器端方法:
public IEnumerable<T> Convert<T>(dynamic self)
{
List<T> model = new List<T>();
var jsSerializer = new JavaScriptSerializer();
foreach (var obj in self)
{
model.Add(jsSerializer.ConvertToType<T>(obj));
}
return model.AsEnumerable();
}
客户端方法:
var model = [];
data.forEach(function (item) {
var property = [];
item.forEach(function (pair) {
property[pair.Key] = pair.Value;
});
model.push(property);
});
使用 ORM: Rob Conery's Massive
原始回复(无转换):
[[{ "Key": "ID", "Value": 2 }, { "Key": "customerID", "Value": 1 }, { "Key": "orderID", "Value": 1 }, { "Key": "address", "Value": "25 Ibrahim Nagy Street, NasrCity, Cairo" }, { "Key": "deliveryDateTime", "Value": "/Date(1381528800000)/" } , { "Key": "deliveryPersonnelID", "Value": 1 }], [{ "Key": "ID", "Value": 3 }, { "Key": "customerID", "Value": 2 } , { "Key": "orderID", "Value": 2 }, { "Key": "address", "Value": "14 Ibrahim Nagy Street, NasrCity, Cairo" }, { "Key": "deliveryDateTime" , "值": "/Date(1386972000000)/" }, { "键": "deliveryPersonnelID", "值": 2 }], [{ "键": "ID", "值": 4 }, { "Key": "customerID", "Value": 1 }, { "Key": "orderID", "Value": 3 }, { "Key": "address", "Value": "30 Abbas Akad Street, NasrCity, Cairo" }, { "Key": "deliveryDateTime", "Value": "/Date(1387922400000)/" }, { "Key": "deliveryPersonnelID", "Value": 2 }], [{ "Key ": "ID", "Value": 5 }, { "Key": "customerID", "Value": 3 }, { "Key": "orderID", "Value": 4 }, { "Key": “地址”,“值”:“25 有san Maamoon Street, NasrCity, Cairo" }, { "Key": "deliveryDateTime", "Value": "/Date(1388354400000)/" }, { "Key": "deliveryPersonnelID", "Value": 3 }]]
【问题讨论】:
-
它对我不起作用,因为数据是通过 AJAX 调用检索的,我必须处理动态,因为我的 ORM 是“海量”。
-
这似乎是在自言自语,因为问我的人删除了他的评论,太好了。
-
服务器端给你编译时间
-
好的,这是一种看待它的方式,但整个视图呢?;
-
直接从 Expando 到 JSON 不会是最快的……为什么要在步骤之间?
标签: c# javascript asp.net-mvc-3 javascriptserializer expandoobject