日期:2014-05-18  浏览次数:20464 次

ASP.NET传递参数不完整
我用用户控件编写的导航栏,象这样:  
-|首页|--报纸书刊-|-电脑及其周边设备-|-衣服-|-数码产品-|-化装用品-|-生活用品-|-影视音乐-|-办公用品-|-软件-|-游戏-|-床上用品-|-珠宝首饰-|-  

通过Request.Params来传递商品分类  

比如象这样:http://localhost/shoppingonline/pkinds_morelist.aspx?pkinds=数码产品  

获取数据的代码是:  
Sub   getdata()  
Dim   mycmd   As   OleDb.OleDbDataAdapter  
mysql   =   "select   *   from   pinfor   where   pkind= ' "   +   Request.Params( "pkinds ")   +   " '   order   by   id   desc "  
Dim   dt   As   DataSet   =   New   DataSet  
mycmd   =   New   OleDb.OleDbDataAdapter(mysql,   mycon)  
'每页显示6个商品信息  
mycmd.Fill(dt,   viewstate( "pagenow "),   6,   "plist ")  
mydl.DataSource   =   dt.Tables( "plist ").DefaultView  
mydl.DataBind()  
End   Sub  

问题就出在这里,商品分类中其他的都正常,可是 "化装品 " "小饰品 " "游戏点卡 "却读不出数据来.按理说Request.Params应该传递这些数据的,可实际上却传递的不完整,页面上要显示分类代码是:当前商品大类为: <%#request.params( "pkinds ")%> ,我能看到的却是 "化装 " "小饰 " "游戏 ",其他的项都正常,我实在搞不明白了,还请各位高手帮帮忙了.


------解决方案--------------------
用HttpUtility.UrlEncode加密参数