【问题标题】:Converting ExpandoObject to a Type, What is more efficient and less time consuming, doing that client side or server side?将 ExpandoObject 转换为类型,在客户端或服务器端做哪个更高效、更省时?
【发布时间】: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


【解决方案1】:

我决定做转换客户端,我不知道我感觉对不对,我的意思是让客户端做一些工作,也不是很辛苦,那为什么要浪费时间服务器端呢?

【讨论】:

  • 如果您遇到类似情况,也可以随意使用我的问题中的任何代码:D.
猜你喜欢
  • 2012-08-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-14
  • 1970-01-01
  • 2019-11-26
  • 2018-07-19
  • 1970-01-01
相关资源
最近更新 更多