C# 哪种方式将数量清单返回给客户?

C# 哪种方式将数量清单返回给客户?,c#,jquery,asp.net,.net,ajax,C#,Jquery,Asp.net,.net,Ajax,我想将产品的可用数量列表(客户可以购买)返回给客户(例如,1,2,3…,200)。我们正在考虑三种方法: 将完整的数量列表返回给客户,客户只需绑定即可。这是当前的实现,很容易实现,但这是对带宽的浪费 返回分开的最小数量和最大数量,客户端必须建立一个列表,然后绑定它们。这是我的想法,因为我们可以避免解析 以1-200的形式返回字符串,然后客户端必须解析为数字,构建列表,然后绑定它们。这是我拼贴的想法,他说他在某处读过(虽然他不记得在哪里),这是返回数量清单的流行方式 我们当前的需求不支持分段数

我想将产品的可用数量列表(客户可以购买)返回给客户(例如,1,2,3…,200)。我们正在考虑三种方法:

  • 将完整的数量列表返回给客户,客户只需绑定即可。这是当前的实现,很容易实现,但这是对带宽的浪费
  • 返回分开的最小数量和最大数量,客户端必须建立一个列表,然后绑定它们。这是我的想法,因为我们可以避免解析
  • 以1-200的形式返回字符串,然后客户端必须解析为数字,构建列表,然后绑定它们。这是我拼贴的想法,他说他在某处读过(虽然他不记得在哪里),这是返回数量清单的流行方式
我们当前的需求不支持分段数量(例如,我们不支持1-20、40-50、100-200数量,我们只支持1-200)

解决这个问题的方法应该是什么?我们在jQuery上使用ASP.NET和AJAX


谢谢。

选项1:返回一个范围内所有整数的列表对我来说是极大的浪费。谁知道将来需要多少数量?如果你曾经有过可以订购数万台的产品,这可能会导致大问题

选项3:当输入需要可读或可编辑时,可解析格式非常有用。一个很好的例子是MS Word中的打印对话框;用户可以选择打印“1、2、7、9、11”或“5-15”等页面,但解析引入了一种全新的漏洞可能性。即使在简单的示例“1-200”中,也有可能将“-”解释为给出“-200”或类似符号的减号。如果接口是机器对机器的,我总是喜欢一个语义清晰的接口。通过明确定义的接口(例如参数“rangeFrom”和“rangeTo”),消除了解释的模糊性,唯一需要解决的问题是实现。我不知道您的客户机是什么,但在任何语言中,生成1到200之间的整数列表都应该非常简单

我肯定会选择选项2:它是一个明确定义的接口。它很容易建造,而且在电线上效率很高

根据你想做的未来证明,你可以考虑选择选项2并伪造一种重载。因此,今天您只需简单地返回以下内容:

{ 
  "listType": "range",
  "rangeFrom": 1,
  "rangeTo": 200
}
客户端应该检查“listType”返回值,目前,它总是希望它是“range”。但在将来,您可以添加其他类型。对于axample

{
  "listType": "increment",
  "rangeFrom": 2,
  "rangeto": 20,
  "inc": 2
}

// Interpreted by client as:
//   2, 4, 6, 8, 10, 12, 14, 16, 18, 20


{
  "listType": "valuelist",
  "values": [1, 2, 5, 20] 
}

// Interpreted by client as:
//   1, 2, 5, 20

这在今天将是简单而有效的,但如果以后有新的需求出现,您可以轻松地进行扩展,而不会破坏兼容性。

您能否提供更多信息:数量是多少?会有1,1200,1,1,0,0,0吗?还是它是1,2,3,4(停止)?我更新了问题,它只能是1,2,3,4,5…,MaxQuantity带宽是这里的一个大问题吗?我的意思是,对于列表1,2,3,…,200700字节/产品,您可能会看到700字节的数据,我们有数千种产品:)。如果有很多人访问我们的网站,那将是一场噩梦,你熟悉json吗?您可以发送/接收json格式的数据。