我在ASP.NET中从跨页面表单帖子获取数据时遇到问题。如何从ASP.NET中的CrossPage帖子获取数据?
我的网页的基本布局是这样的:使用母版“Default.master” 的.aspx。 在“Default.master.cs”我检查会话[“user_IsLoggedIn”]存在,并且是真实的。 如果是我加载一个名为“ShowLoginInformationControl.ascx”的WebUserControl。 如果没有,我加载“ShowLoginFormControl.ascx”。
正如您可以猜到第一显示了一些登录信息,后者显示了quicklogin形式和注册按钮:
<asp:TextBox Id="QuickloginUserName" RunAt="server" />
<asp:TextBox Id="QuickloginPassword" TextMode="Password" RunAt="server" />
<asp:Button ID="LoginSubmit" CssClass="LoginSubmit" meta:resourcekey="Login_LoginSubmit" PostBackUrl="~/Login.aspx" runat="server" />
形式的目标,以“为Login.aspx”。该页面上还有另一个登录表单,因此用户可以选择使用快速登录或导航到登录页面。
的问题是: 我不能从quicklogin形式获取表单数据。
上Login.aspx.cs的代码如下所示:
if(Page.IsPostBack)
{
// POST from this page
userName = UserName.Text;
password = Password.Text;
}
else if(PreviousPage != null && PreviousPage.IsCrossPagePostBack)
{
// POST from user control
TextBox userNamePreviousPageTextBox = (TextBox)PreviousPage.FindControl("QuickloginUserName");
TextBox passwordPreviousPageTextBox = (TextBox)PreviousPage.FindControl("QuickloginPassword");
userName = userNamePreviousPageTextBox.Text;
password = passwordPreviousPageTextBox.Text;
}
获取数据从本身的效果很好,从以前的页面获取数据的页面..没有。 :(
当使用quicklogin即时得到一个NullReferenceError,造成的FindControl返回null。
如何从这两个输入字段获得数据?
PS 我不使用ASP .NET的成员,这可能是一个错误,但现在我没有“学习”使用它的时间。如果(即使有帮助)我不会得到它的工作生病了,并链接到更换quicklogin登录页面。
我曾尝试过,但问题是,** PreviousPageType **可能只包含一个源页面。然而,登录表单是在母版页中实现的,所以表单可以从网站上的每个页面提交。 – johnk 2011-02-06 16:37:57