从Jquery ajax向C#Web服务发送数据

时间:2011-01-17 22:34:16

标签: jquery ajax web-services json

假设我有一个名为service.asmx / Test的Web服务/ Web方法。我在这个Web服务中有几种方法。

我希望将一些数据发送到任何给定的方法。数据由几个部分组成,每个方法可以有不同类型的变量发送给它。目前,我使用string [] []类型,所以我的Web服务看起来像这样:

 [WebMethod]

        public void Test(string[][] data)
        {
            //do whatever
        }

我已经提到它不是最好的方法。很多人使用IDictionary并定义强类型......但似乎它会增加更多的复杂性。这样做的正确方法是什么?我应该使用什么类型的变量,List,string [] [],myCustomType?

如果我使用MyCustom类型,我想让它更通用,例如

public class MyCustom {

        public string user { get; set; }
        public string domain { get; set; }
        public string client { get; set; }
        public string server { get; set; }

        Array<Object> params;

}

其中data是一个对象数组,每个对象的类型可能不同。

所以这个方法现在看起来像:

[WebMethod]

        public void Test(MyCustom data)
        {
            //do whatever
        }

谢谢

2 个答案:

答案 0 :(得分:0)

决定传递几个参数,而不是传递MyCustom类型的一个参数。这解决了可维护性和灵活性问题。

答案 1 :(得分:0)

您可以做的是,您可以使用JSON将数据发布到您的Web服务。同样在您的Web服务中,您必须添加以下内容:     [System.Web.Script.Services.ScriptService] 然后你可以做的是,你使用json对象作为你的ajax调用的数据,asp.net将负责其余的。