ASP.net中的ASP.net脚本服务消费

时间:2009-11-26 08:39:35

标签: asp.net javascript web-services

我在asp.net中有一个脚本服务,我需要使用JSONP从javascript中使用这个WS(脚本标记注入;因为它是跨域的,没有$ .ajax()调用)。

在这种情况下,Web方法的输入是一个复杂的结构,我必须在客户端创建输入结构。如何将客户端结构与服务器端参数进行匹配?

  

让问题更清晰一些   : -

     

假设我已经以某种方式创建了   复杂的输入并将其传递给   脚本方法。现在,怎么样   匹配/验证我的输入   结构到输入参数   发生了脚本方法(或其他方法)   单词,是什么的基础   匹配?)

2 个答案:

答案 0 :(得分:1)

您可以在不使用Microsoft.Ajax框架的情况下将复杂类型传递给Web服务。我用JQuery写了一个小例子。

假设您将以下C#类用作webmethod的参数:

namespace JQueryWebServiceTest
{
    public class TwoStringsTogether
    {
        public string StringA;
        public string StringB;
    }
}

webmethod具有以下签名:

TwoStringsTogether TransformTwoStringsTogether(TwoStringsTogether input)

你可以这样调用这个方法:

$.ajax({
    type: "POST",
    contentType: "application/json; charset=utf-8",
    url: "TestService.asmx/TransformTwoStringsTogether",
    data:"{" +
        "input: {" +
        "__type: 'JQueryWebServiceTest.TwoStringsTogether'," +
        "StringA: 'HalloA'," +
        "StringB: 'HalloB'" +
        "}" +
    "}",
    dataType: "json",
    success: SuccessCallback
});

注意__type参数,如果没有它,它将无效。

答案 1 :(得分:0)

在这种情况下,您将根据参数的发现发送JSON结构。如果它与服务接受的相同,那么您的呼叫将成功,否则将失败。