我在asp.net中有一个脚本服务,我需要使用JSONP从javascript中使用这个WS(脚本标记注入;因为它是跨域的,没有$ .ajax()调用)。
在这种情况下,Web方法的输入是一个复杂的结构,我必须在客户端创建输入结构。如何将客户端结构与服务器端参数进行匹配?
让问题更清晰一些 : -
假设我已经以某种方式创建了 复杂的输入并将其传递给 脚本方法。现在,怎么样 匹配/验证我的输入 结构到输入参数 发生了脚本方法(或其他方法) 单词,是什么的基础 匹配?)
答案 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结构。如果它与服务接受的相同,那么您的呼叫将成功,否则将失败。