访问WebService传递复杂参数
数据类型(Asp Net Ajax)
参数类型一定要有默认的构造函数
(如果类没有写构造函数)编译器会自动生成默认构造函数
手动编写默认的构造函数
客户端设置类型公有的域变量及属性
设置的属性必须有Setter方法
使用JSON进行传输格式
自动进行序列化与反序列化
json格式可以分成三种
第一种类型是scalar(标量) 也就是一个单独的string(字符串)或数字(numbers) 比如 北京 这个单独的词
第二种类型是sequence(序列) 也就是若干个相关的数据按照一定顺序并列在一起 又叫做array(数组)或List(列表) 比如 北京 东京
第三种类型是mapping(映射) 也就是一个名/值对(Name/value) 即数据有一个名称 还有一个与之相对应的值 这又称作hash(散列)或dictionary(字典) 比如 首都 北京
) 并列的数据之间用逗号( )分隔
) 映射用冒号( )表示
) 并列数据的集合(数组)用方括号( [] )表示
) 映射的集合(对象)用大括号( {} )表示
给出一个例子
[
{ 城市 : 北京 面积 : 人口 : }
{ 城市 : 上海 面积 : 人口 : }
]
下面给出一个例子
当然包括ScriptManager
function UserOK()
{
checkAllInfo();
var txtuserid=$get( txtUserID );
var txtcustom=$get( customQuestion );
var selectid=$get( SelectQuestion );
var txtanswer=$get( txtAnswer );
var txtmail=$get( txtMailBoxAddress );
var txtpaw=$get( txtUserPassword );
if(selectid!= )
{
var userentity={ UserID :txtuserid value DesignationKindID : MailAddress :txtmail value
GradeID : UserPsw :txtpaw value Question :selectid value Answer :txtanswer value UserName :
Point : UserType : LockTime : LoginCount : LoginTime : }
GetUserService UserService RegisterUser(userentity RegisterSucceeded);
}
else
{
var userentity={ UserID :txtuserid value DesignationKindID : MailAddress :txtmail value
GradeID : UserPsw :txtpaw value Question :txtcustom value Answer :txtanswer value UserName :
Point : UserType : LockTime : LoginCount : LoginTime : }
GetUserService UserService RegisterUser(userentity RegisterSucceeded);
}
}
function RegisterSucceeded(result)
{
if(result)alert( 注册成功 );
else alert( 注册失败 );
}
服务器内容是
[WebMethod]
public bool RegisterUser(UserEntity userentity)
{
userentity Point = int Parse(ConfigurationManager AppSettings[ UserBeginPoint ]);
userentity UserPsw = FormsAuthentication HashPasswordForStoringInConfigFile(userentity UserPsw MD );
if (UserData InsertUser(userentity))
return true;
else
return false;
}
这个UserEntity是
using System;
using System Collections Generic;
using System Linq;
using System Text;
namespace SQLProduct
{
public class UserEntity
{
public string UserID { set; get; }
public int DesignationKindID { set; get; }
public string MailAddress { set; get; }
public int GradeID { set; get; }
public string UserPsw { set; get; }
public string Question { set; get; }
public string Answer { set; get; }
public string UserName { set; get; }
public int Point { set; get; }
public string UserType { set; get; }
public string LockTime { set; get; }
public int LoginCount { set; get; }
public string LoginTime { set; get; }
}
lishixinzhi/Article/program/net/201311/13659