我在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