将Web服务传递给未知数量的参数

时间:2010-04-28 14:44:24

标签: asp.net web-services json serialization

我对使用网络服务比较陌生。我正在尝试创建一个将接受来自ASP.Net表单的数据的表单,其输入控件是在运行时动态创建的,而我不会传递多少控件值。

我在想我将在表单上使用jQuery的serialize()来获取数据,但是我有什么Web服务接受参数?我想也许我可以使用serializeArray(),但我仍然不知道JavaScript数组接受什么类型的变量。

最后,我想我可能需要在将数据发送到Web服务之前使用数据创建一个简单的数据传输对象。如果有一个更简单的方法或我应该遵循的既定最佳实践,我只是不想通过DTO路线。

提前感谢您提供的任何指示,并让我知道我不够清楚,或者如果您有任何问题。

2 个答案:

答案 0 :(得分:0)

标题问题(假设这是一个ASP.Net网络服务)的答案是在您的网络服务方法中使用params关键字:

[WebMethod]
public void SendSomething(params string[] somethings)
{
    foreach (string s in somethings)
    {
        // do whatever you're gonna do
    }
}

示例:

SendSomething("whatever");
SendSomething("whatever 1", "whatever 2", "whatever 3");

事实上,您甚至不需要params关键字 - 使用普通数组作为参数将允许您传入未知数量的值。

答案 1 :(得分:0)

我接下来创建了自己的数据传输对象,我觉得它总是大脑解决方案的前沿,我只是觉得可能有一个公认的最佳实践来处理这个问题。