电子商务站点, 在一个完整的预订流程中, 用户的一些选择信息需要从一个页面传到下一个页面. 这是特别常用的需求. 一般的做法把这些信息一一的写进隐含域<input type=hidden value="xx"> 再post 到另外一页, 再一一接收. 或者放在Url 中传递.
在asp.net中我们习惯把这用户需求信息, 用一个实体类来表示. 像上面的这种需求, 我们就需要在每一个页面中, 新建实体, 接受参数, 为所有属性设值. 传递到下一页还得一一拿出来写进隐含域.
这样太烦了,程序员是最怕麻烦的. 我们很自然的就会想到下面的这几种办法.
1. 把整个实体写进Session . 这是很简单, 可Session 会过期, 又占用服务器的资源. 明显这做法是不可取的.
2. 用ViewState . viewstate 把值放在html里, 过期是不会. 又不占用服务器的资源. 这看上去不错. 可是ViewState 一般只能在同一页中使用. (当然你可以把你的站点改成使用一个页面实例) 但有一个最大的问题, 把一个对象序列化成字符动不动就上百K 的体积, 让人望而却步.
3. 在实体类中提供ToString()和 BuildObject(string str)方法, 把所有属性的值加成一个字符串, 用这个字符串来传递. 到了别外一页调用BuildObject方法, 分解字符串,重新还原成对象. 这样可以使一个对象在页之间的传递变得相对容易. 传递的字串符的量不大.还可以使用字符串压缩,无论是放在隐含域中还是Url 中都很方便.
但是第3种方法, 需要为每一个需要在页间传递的对象提供ToString()和BuildObject(string str)方法. 还是老话,程序员是最怕麻烦的.
我们可以再抽象一下. 提供一个基类来做这工作怎么样? 当然不错, 这样的我的这些对象就可以什么都不用做了, 直接继承于这个基类就行了. 可是这个基类怎么写呢? 在基类中,怎么能知道这个类中的所有属性呢? 你一定知道的 .net大名鼎鼎的反射技术.
下面就不用我说什么了, 我把代码放在下面:
实体的基类
1
usingSystem;
2
usingSystem.Reflection;
3![None.gif](http://razor.cnblogs.com/Images/OutliningIndicators/None.gif)
4
namespaceWebApplication3
5![ExpandedBlockStart.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![ContractedBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
{
6![ExpandedSubBlockStart.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**////<summary>
7
///所有需要页间传递实体的基类.
8
///</summary>
9
[Serializable]
10
publicclassRequestInfo
11![ExpandedSubBlockStart.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
{
12
publicRequestInfo()
13![ExpandedSubBlockStart.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
{
14
}
15![InBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
16
//把实体的所有属性值传换成字符串
17
publicvirtualstringToObjectString()
18![ExpandedSubBlockStart.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
{
19
stringobjString=string.Empty;
20
//得到所有Property
21
PropertyInfo[]Propertys=this.GetType().GetProperties();
22
inti=0;
23![InBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
24
foreach(PropertyInfopiinPropertys)
25![ExpandedSubBlockStart.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
{
26
objectoj=pi.GetValue(this,null);
27
Typetype=pi.PropertyType;
28
stringvalueStr=string.Empty;
29![InBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
30
if(oj!=null&&oj.ToString()!=string.Empty)
31![ExpandedSubBlockStart.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
{
32
if(type==Type.GetType("System.DateTime"))
33![ExpandedSubBlockStart.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
{
34
valueStr=((DateTime)oj).ToShortDateString();
35
}
36
else
37![ExpandedSubBlockStart.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
{
38
valueStr=oj.ToString();
39
}
40![InBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
41
objString+="|"+i.ToString()+"*"+valueStr;
42![InBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
43
}
44
i++;
45
}
46
objString=System.Web.HttpUtility.UrlEncode(objString);
47![InBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
48
returnobjString;
49
}
50![InBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
51![InBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
52
//把字符串还原成对象
53
publicvirtualRequestInfoBuildObject(stringobjString)
54![ExpandedSubBlockStart.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
{
55![InBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
56![InBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
57
objString=System.Web.HttpUtility.UrlDecode(objString);
58![InBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
59
objectnewObject=Activator.CreateInstance(this.GetType());
60![InBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
61
PropertyInfo[]Propertys=newObject.GetType().GetProperties();
62
inti=0;
63
string[]propertyValue=newstring[Propertys.Length];
64
string[]valueArray=objString.Split('|');
65![InBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
66
//分解值.
67
for(intj=0;j<valueArray.Length;j++)
68![ExpandedSubBlockStart.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
{
69
if(valueArray[j]!=null)
70![ExpandedSubBlockStart.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
{
71
intorder=0;
72
string[]valuArray=valueArray[j].Split('*');
73
if(valuArray!=null)
74![ExpandedSubBlockStart.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
{
75
if(valuArray[0]!=null&&valuArray[0]!=string.Empty)
76![ExpandedSubBlockStart.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
{
77
stringkey=valuArray[0].ToString();
78
stringvalue=valuArray[1].ToString();
79
if(key!=string.Empty)
80![ExpandedSubBlockStart.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
{
81
order=int.Parse(key);
82
}
83
propertyValue[order]=value;
84
}
85
}
86
}
87
}
88
//把值置进去.
89
foreach(PropertyInfopiinPropertys)
90![ExpandedSubBlockStart.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
{
91
if(propertyValue[i]!=null)
92![ExpandedSubBlockStart.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
{
93
if(pi.CanWrite)
94![ExpandedSubBlockStart.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
{
95
objectobb=propertyValue[i];
96
Typetype=pi.PropertyType;
97
obb=Convert.ChangeType(obb,type);
98
pi.SetValue(newObject,obb,null);
99![InBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
100
}
101
}
102
else
103![ExpandedSubBlockStart.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
{
104
if(pi.CanWrite)
105![ExpandedSubBlockStart.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
{
106
pi.SetValue(newObject,null,null);
107
}
108
}
109![InBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
110
i++;
111
}
112
return(RequestInfo)newObject;
113![InBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
114
}
115
}
116
}
117
一般的实体类.
1
usingSystem;
2![None.gif](http://razor.cnblogs.com/Images/OutliningIndicators/None.gif)
3
namespaceWebApplication3
4![ExpandedBlockStart.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![ContractedBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
{
5![ExpandedSubBlockStart.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**////<summary>
6
///SummarydescriptionforHotelRequestInfo.
7
///</summary>
8
///
9
[Serializable]
10
publicclassHotelRequestInfo:RequestInfo
11![ExpandedSubBlockStart.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
{
12
privatestringhotelName;
13
privatestringhotelID;
14
privatestringcityName;
15
privateintpersonNum;
16
privateintroomNum;
17
privateintstar;
18![InBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
19![InBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
20
privateDateTimecheckInDate;
21
privateDateTimecheckOutDate;
22![InBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
23
publicHotelRequestInfo()
24![ExpandedSubBlockStart.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
{
25![InBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
26![InBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
27
}
28![InBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
29
publicstringHotelID
30![ExpandedSubBlockStart.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
{
31
get
32![ExpandedSubBlockStart.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
{
33
returnhotelID;
34
}
35
set
36![ExpandedSubBlockStart.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
{
37
hotelID=value;
38
}
39
}
40![InBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
41![InBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
42![InBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
43
publicstringHotelName
44![ExpandedSubBlockStart.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
{
45
get
46![ExpandedSubBlockStart.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
{
47
returnhotelName;
48
}
49
set
50![ExpandedSubBlockStart.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
{
51
hotelName=value;
52
}
53
}
54![InBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
55![InBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
56
publicstringCityName
57![ExpandedSubBlockStart.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
{
58
get
59![ExpandedSubBlockStart.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
{
60
returncityName;
61
}
62
set
63![ExpandedSubBlockStart.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
{
64
cityName=value;
65
}
66
}
67![InBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
68
publicintStar
69![ExpandedSubBlockStart.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
{
70
get
71![ExpandedSubBlockStart.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
{
72
returnstar;
73
}
74
set
75![ExpandedSubBlockStart.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
{
76
star=value;
77
}
78
}
79![InBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
80
publicintPersonNum
81![ExpandedSubBlockStart.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
{
82
get
83![ExpandedSubBlockStart.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
{
84
returnpersonNum;
85
}
86
set
87![ExpandedSubBlockStart.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
{
88
personNum=value;
89
}
90
}
91![InBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
92
publicintRoomNum
93![ExpandedSubBlockStart.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
{
94
get
95![ExpandedSubBlockStart.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
{
96
returnroomNum;
97
}
98
set
99![ExpandedSubBlockStart.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
{
100
roomNum=value;
101
}
102
}
103![InBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
104
publicDateTimeCheckInDate
105![ExpandedSubBlockStart.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
{
106
get
107![ExpandedSubBlockStart.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
{
108
returncheckInDate;
109![InBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
110
}
111
set
112![ExpandedSubBlockStart.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
{
113![InBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
114
checkInDate=value;
115![InBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
116
}
117
}
118![InBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
119![InBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
120
publicDateTimeCheckOutDate
121![ExpandedSubBlockStart.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
{
122
get
123![ExpandedSubBlockStart.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
{
124
returncheckOutDate;
125
}
126
set
127![ExpandedSubBlockStart.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
{
128![InBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
129
checkOutDate=value;
130![InBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
131
}
132
}
133![InBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
134![InBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
135![InBlock.gif](http://razor.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
136
}
137
}
138
使用的时候.
1
HotelRequestInfomyInfo=newHotelRequestInfo();
2
myInfo.HotelName=Request["hotelName"].ToString();
3
myInfo.HotelID=Request["hotelId"].ToString();
4
myInfo.Star=Request["star"].ToString();![None.gif](http://razor.cnblogs.com/Images/OutliningIndicators/None.gif)
7
stringpValue=myInfo.ToObjectString();
页面中写:
<a href="WebForm5.aspx?pv=<% =pValue%>">下一页</a>
下一页中:
1
HotelRequestInfomyInfo
=
new
HotelRequestInfo();
2
![None.gif](http://razor.cnblogs.com/Images/OutliningIndicators/None.gif)
3
string
a
=
Request.Params[
"
pv
"
].ToString();
4
![None.gif](http://razor.cnblogs.com/Images/OutliningIndicators/None.gif)
5
myInfo
=
(HotelRequestInfo)myInfo.BuildObject(a);
6
![None.gif](http://razor.cnblogs.com/Images/OutliningIndicators/None.gif)
7
Response.Write(
"
<h1>第五页</h1>
"
);
8
Response.Write(myInfo.HotelName);
9
Response.Write(
"
<hrsize=1>
"
);
10
Response.Write(myInfo.HotelID);