我有一个类includes.vb拥有一些变量(与其他网页分享它们),如:我的共享变量是否会失去价值? (asp.net VB)
Public Shared pageid As Integer = 0
然后我有做这些变量返回他们工作的一些功能值;
Return pageid
当我通过代码,这些变量的值(同时通过功能步进),但是当他们返回到该页面,他们回来空。
每次页面加载时它们是否值? 你能否提出一种替代方法?
非常感谢。
我有一个类includes.vb拥有一些变量(与其他网页分享它们),如:我的共享变量是否会失去价值? (asp.net VB)
Public Shared pageid As Integer = 0
然后我有做这些变量返回他们工作的一些功能值;
Return pageid
当我通过代码,这些变量的值(同时通过功能步进),但是当他们返回到该页面,他们回来空。
每次页面加载时它们是否值? 你能否提出一种替代方法?
非常感谢。
您应该使用可能的会话变量。
Session("PageID") = 0
并在您每次需要时访问它。
不是最好的做法,但如果你想要更严格,你可以为每个会话使用特定的应用程序变量,这样如果用户在一天之后返回到网站,它仍然不会丢失(只要你没有'我做了一个iisreset)。
要克服iisreset将会是一个更大的矫枉过正,您可以将值保存到文件/数据库并在每次需要时检索它。 (请不要那样做!)
在Web项目中使用共享变量不是一个好主意:首先,每次执行“iisreset”或回收应用程序池时,都会重置这些变量。接下来,这些变量不是每个用户,而是每个进程和(我相信)都不能保证是线程安全的,因此一个线程可能会更改变量的值,然后另一个线程会将值重置为不同的值。
从变量名称“PageID”判断,我认为你试图追踪用户访问过的最后一页。如果是这种情况,那么会话变量作用域是一个更好的解决方案。请参阅教程:http://msdn.microsoft.com/en-us/library/ms178581.aspx
什么替代方案可用?我怎样才能达到预期的效果? – Phil 2010-03-16 06:49:46
PageID从querystring中获取id项并用它来标识需要向用户显示哪些页面。 – Phil 2010-03-16 07:18:01