我正在写我的第一个 asp.net应用程序,并试图使用PreviousPage属性来访问页面之间的数据。 Visual 2010给了我一个我不明白的错误,所以我需要一些帮助来理解我做错了什么。使用vb.net在ASP.net页面之间传递数据
我有一个应用程序,我将使用Transfer在所有页面之间跳动。这样,从用户的角度来看,他所见到的只有一个网址。这个URL将使他登录到应用程序(现在是一个应用程序控制的功能)并连接到数据库。因此,我有我想移交给叫_dbConnection这是我的声明页面类私有变量下一页的SqlClient.SqlConnection对象时...
Partial Class Protocol
Inherits System.Web.UI.Page
Private _dbconnection As SqlClient.SqlConnection
Public ReadOnly Property dbConnection As SqlClient.SqlConnection
Get
Return _dbConnection
End Get
End Property
...
后来下来的代码,以向效应初探点击事件上的按钮
Server.Transfer("PSetup.aspx")
在PSetup.aspx我有以下
<%@ Page Title="" Language="VB" MasterPageFile="~/MasterPage.master" AutoEventWireup="True" CodeFile="PSetup.aspx.vb" Inherits="PSetup" %>
<%@ PreviousPageType VirtualPath="~/Protocol.aspx" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
哪些应该申报的协议类别按上一页
然而,在PSetup的Page_Load中子我尝试这个
_dbConnection = PreviousPage.dbConnection
其中在此使用_dbConnection是在新的页面类私有变量。
Visual Studio是给我一个错误“的DbConnection”不是的成员“System.Web.UI.Page”
我已经通过文档阅读这几次,我只是不明白我做错了。请有人帮助我。
从我的(主要)linux/apache/php背景我明白无状态。然而,asp.net肯定给人的印象是页面对象存在于请求之间 - 页面类(实例)中的所有私有变量似乎保持状态,同时由于事件发生在客户端页。微软的例子讨论的是强制类型到实际页面的PreviousPage,然后继续给出一个“CurrentCity”的例子作为一个可以被检索的属性。我看不到的是我的例子与众不同。 – akc42
嘿,那绝对是我的错!当添加了“<%@ PreviousPageType VirtualPath =”〜/ SourcePage.aspx“%>”(就像你所做的那样),它确实是强类型的(否则,它使用Page.PreviousPage属性完成,它被键入作为页面)。但是,我发现这个例子,它的工作原理是因为'CurrentCity'是一个公共属性,它返回一个文本框的值,它通过请求信息持久化。例如,它不会返回在上一页的页面加载中设置的任意字符串。 –
页面会记住控件的状态,因为它们存储在ViewState中。我认为在你的情况下,你可以在会话中保存sqlConnection,但它不是很好的做法。 – CoffeeCode