ASP.NET不支持跨頁回發,它允許您將頁1回發到頁2,並從第二頁後面的代碼中的第一頁訪問控件。你可以在這裏找到更多關於MSDN的信息:http://msdn.microsoft.com/en-us/library/ms178139.aspx。它會花費一點時間才能讓它工作超過四頁,並且它不會非常漂亮,但它應該是可能的。
我知道你想要減少SQL調用,但是我個人可能會考慮在數據庫中添加某種保存表,並在用戶瀏覽表單的四個頁面時將數據添加到該表中。
例如說,第一頁有一個名爲first name的字段,第二頁有一個名爲last name的字段,第三頁有一個名爲date of birth的字段。我會創建一個帶有ID,名字,姓氏和出生日期列的數據庫表。當用戶完成第一頁時,我會在該表中創建一行並將第一個名稱保存到該表中。如何管理數據庫中的標識符取決於您,但是我會使用ASP.NET配置文件提供程序獲取標識並將其保持在會話狀態或匿名用戶配置文件中。
當用戶完成第二頁時,我會從會話中或後面存儲它的位置獲取ID,然後在數據庫中對該行進行更新以保存第二個名稱等等。當它進入最後階段時,您可以將所有已保存的數據從數據庫中提取出來,並通過您需要的任何業務邏輯運行。
畢竟說了算,你可以從該保存表中刪除數據,因爲它現在應該保存在最終狀態的其他地方。如果你確實走了這條路,那麼最好每隔一段時間就移除部分完成的數據。這可能是一個安全的選擇,如果有人在三小時前填寫第1頁,他們不會回來完成剩下的工作。
我不明白你的第一個建議。你能解釋一下嗎?他們必須是不同的頁面,因爲我需要顯示一個sitemappath,所以我不能使用用戶控件。 – user648610
更新了一些更詳細的答案 – agradl