在.NET中的HTTP请求中传递数组值

在.NET中的HTTP请求中传递和处理数组的标准方法是什么? 我有一个解决方案,但我不知道这是否是最好的方法。

这是我的解决方案:

ASHX处理程序以逗号分隔的字符串接收“user”参数。 您可以通过拆分字符串轻松获取值:

 public void ProcessRequest(HttpContext context) { string[] users = context.Request.Form["user"].Split(','); } 

所以,我已经找到了我的问题的答案:为同一个参数名称分配多个值,假设ASHX处理程序将其作为逗号分隔的字符串接收,并拆分字符串。 我的问题是这是否通常在.NET中完成。

这是什么标准做法? 是否有一种更简单的方法来获取多个值,而不是假设该值是以逗号分隔并在其上调用Split()? 这是数组通常如何在.NET中传递,还是使用XML?

有没有人对这是否是最佳方法有任何见解?

没有真正的标准,但你使用的是最接近它的。

但是,这些值实际上不是以逗号分隔的字符串forms发送的,它们是作为具有相同名称的单独值发送的。 您示例中的表单数据如下所示:

 user=Aaron&user=Bobby&user=Jimmy&user=Kelly&user=Simon&user=TJ 

您可以像这样直接读取值作为数组:

 string[] users = context.Request.Form.GetValues("user"); 

如果您使用Form["user"] ,它将为您连接值,您必须再次拆分它们。 这只是浪费时间,如果任何值包含逗号,它也会中断。

如果您使用复选框或多选列表框,则可以从html自动获取以逗号分隔的值集。 你在做什么都很好。 如果您以其他方式在javascript中生成数组,则可以生成以逗号分隔的字符串并将其分配给隐藏字段,并以相同方式在服务器上使用split()。 XML肯定是另一种选择,但如果你想要做的只是传递一个简单的数字或短字符串数组,它似乎很复杂。 (当然,如果你需要传递的字符串值包含逗号,这会搞砸你的简单计划。)