关于Frame的问题

1.错误提示数据库

Sys.ArgumentOutRangeException:Value must be an integer.Parameter name:x  Actual value was NaN.
今天的项目中使用AJAXTOOLKIT的时候碰到这个问题,原先觉得是AJAXTOOLKIT带来的问题,去掉updatePanal后仔细看了才发现并非AJAXTOOLKIT带来的问题,原来最开始就有错误报出,只是每次你提交的时候会很快的刷新页面,这个时候会把你的脚本错误刷掉(其实就是frame的错误刷掉,那样你就看不到了)。浏览器

原来罪魁祸首是index.htm中的Frame形成的。服务器

frame或iframe的frameborder属性应使用1或0,如:frameborder= "0 "
而不能使用yes或no,如:frameborder= "no "框架

所以将frameborder= "no "改为frameborder= "0 " ,问题就解决了。ide

 

 

 

2.关于在frame中Session传递的问题。网站

用经验的开发者可能会发现,在frame中,多用户登陆的状况下,若是你使用的是HTML页面做为框架首页,就会出现Session串的状况。什么是串?也就是B用户登陆后记录的Session给了先前登陆的A用户......orm

 

在通常状况下,若是frameset是aspx页面,当你请求页面时,它首先将请求发送到Web服务器,此时已经得到了SessionID,接着浏览器会分别请求Frame中的其余页面,这样全部页面的SessionID就是同样的,就是FrameSet页面的SessionID。
然而若是你使用Html页面作FrameSet页面,第一个请求将是HTML页面,当该页面从服务器上返回是并无任何Session产生,接着浏览器会请求Frame里面的页面,这样这些页面都会产生本身的SessionID,因此在这种状况下就会出现这种问题。当你从新刷新页面时,SessionID就会同样,而且是最后一个请求页面的SessionIDhtm

****************************************************************ip

其实能不用Session是最好的了,能够经过Form验证登陆后,User.Identity.Name能够取获得用户登陆的ID,固然,若是要获得用户名之类的消息,能够经过ID查询咯。开发

如今不少商业的网站都会用profile保存用户的临时信息,也就是用一个数据库专门存放用户的信息。.WEB2.0提供了一套profileprovider彻底能够实现用户信息的存储,不过若是要使用,就得用全了,包括membership,rolemanager等。